/*!
 * 光影集 (Light & Shadow Collection) — aphoto.cc 扩展主题 v8.5
 * Copyright (C) 王文方 / loves.net.cn 版权所有
 * All Rights Reserved. 永久保留所有权利.
 *
 * 65 套扩展主题：
 *   焦外虚化 8 · 自然有机 8 · 玻璃质感 8 · 电影画幅 8
 *   宝丽来 8 · 分屏对比 5
 *   少女 5 · 男孩 5（重新设计：不影响内容浏览）
 *   新增创意 10（光圈·暗房·接触印相·画廊·复古·水晶球·光绘·针孔·鱼眼·红外）
 *
 * 设计原则：
 *   1. 背景效果 z-index:0，pointer-events:none，不遮挡任何内容
 *   2. 所有内容元素 z-index:1，确保在背景之上
 *   3. 创意聚焦于内容增强：相框边角·按钮形状·卡片装饰·分割线
 *   4. 紧贴摄影主题：光圈·暗房·胶片·画框·镜头·接触印相
 */
@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface:wght@300;400;500;600;700&family=Anton:wght@300;400;500;600;700&family=Architects+Daughter:wght@300;400;500;600;700&family=Archivo+Black:wght@300;400;500;600;700&family=Audiowide:wght@300;400;500;600;700&family=Barlow:wght@300;400;500;600;700&family=Barlow+Condensed:wght@300;400;500;600;700&family=Bebas+Neue:wght@300;400;500;600;700&family=Big+Shoulders+Display:wght@300;400;500;600;700&family=Caveat:wght@300;400;500;600;700&family=Chivo:wght@300;400;500;600;700&family=Cinzel:wght@300;400;500;600;700&family=Comfortaa:wght@300;400;500;600;700&family=Cormorant+Garamond:wght@300;400;500;600;700&family=Crimson+Text:wght@300;400;500;600;700&family=DM+Sans:wght@300;400;500;600;700&family=DM+Serif+Display:wght@300;400;500;600;700&family=Exo+2:wght@300;400;500;600;700&family=Fraunces:wght@300;400;500;600;700&family=Fredoka:wght@300;400;500;600;700&family=Gloria+Hallelujah:wght@300;400;500;600;700&family=Hanken+Grotesk:wght@300;400;500;600;700&family=Homemade+Apple:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@300;400;500;600;700&family=IBM+Plex+Sans:wght@300;400;500;600;700&family=Indie+Flower:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500;600;700&family=Josefin+Sans:wght@300;400;500;600;700&family=Karla:wght@300;400;500;600;700&family=Lato:wght@300;400;500;600;700&family=Libre+Baskerville:wght@300;400;500;600;700&family=Lora:wght@300;400;500;600;700&family=Luckiest+Guy:wght@300;400;500;600;700&family=Major+Mono+Display:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700&family=Marcellus:wght@300;400;500;600;700&family=Noto+Sans:wght@300;400;500;600;700&family=Nunito:wght@300;400;500;600;700&family=Oswald:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700&family=Pacifico:wght@300;400;500;600;700&family=Patrick+Hand:wght@300;400;500;600;700&family=Playfair+Display:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600;700&family=Quicksand:wght@300;400;500;600;700&family=Rajdhani:wght@300;400;500;600;700&family=Raleway:wght@300;400;500;600;700&family=Roboto+Condensed:wght@300;400;500;600;700&family=Russo+One:wght@300;400;500;600;700&family=Shadows+Into+Light:wght@300;400;500;600;700&family=Sniglet:wght@300;400;500;600;700&family=Source+Sans+3:wght@300;400;500;600;700&family=Source+Serif+4:wght@300;400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&family=Space+Mono:wght@300;400;500;600;700&family=Special+Elite:wght@300;400;500;600;700&family=Spectral:wght@300;400;500;600;700&family=Syncopate:wght@300;400;500;600;700&family=Syne:wght@300;400;500;600;700&family=Tomorrow:wght@300;400;500;600;700&family=Unica+One:wght@300;400;500;600;700&family=Work+Sans:wght@300;400;500;600;700&family=Yeseva+One:wght@300;400;500;600;700&display=swap');


/* === 修复：确保16套重新设计的主题封面大图正常显示 ===
   原因：各主题的 .hero > * 规则将 .hero-bg 的 position:absolute 覆盖为 relative
   修复：显式恢复 .hero-bg 和 .hero-overlay 的绝对定位，并确保层级正确 */
[data-theme^="ext-bokeh-"] .hero-bg,
[data-theme^="ext-organic-"] .hero-bg{
  position:absolute !important;inset:0 !important;z-index:0 !important;
}
[data-theme^="ext-bokeh-"] .hero-overlay,
[data-theme^="ext-organic-"] .hero-overlay{
  position:absolute !important;inset:0 !important;z-index:1 !important;
}
[data-theme^="ext-bokeh-"] .hero > .hero-content,
[data-theme^="ext-bokeh-"] .hero > .hero-scroll,
[data-theme^="ext-organic-"] .hero > .hero-content,
[data-theme^="ext-organic-"] .hero > .hero-scroll{
  position:relative !important;z-index:2 !important;
}


/* === 修复：下拉指示器与文字重叠 ===
   确保hero内容有足够底部空间，scroll指示器不遮挡文字 */





/* === 全局修复：hero-scroll 下拉指示器位置 ===
   确保scroll在内容流中，不使用absolute定位 */
[data-theme] .hero-scroll{
  position:relative !important;
  bottom:auto !important;
  left:auto !important;
  transform:none !important;
  margin-top:3.5rem !important;
  opacity:1 !important;
}
[data-theme] .hero-content{
  padding-bottom:1rem !important;
}

/* ############################################################
   THEME: ext-bokeh-warm  (暖光虚化 / Warm Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-warm"]{
  --bg:#100a05;--bg-2:#1a1208;--bg-3:#2a1f14;--bg-4:#3a2e1c;
  --text:#fff5e8;--text-dim:#c8b090;--text-mid:#9a8268;
  --accent:#ffc878;--accent-glow:rgba(255,200,120,0.4);--white:#fff5e8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#100a05ee;
  --font-display:'Fraunces';--font-body:'Outfit';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#100a05;color:#fff5e8;
}
[data-theme="ext-bokeh-warm"][data-color="gold"]{--accent:#ffc878;--accent-glow:rgba(255,200,120,0.4);}
[data-theme="ext-bokeh-warm"][data-color="amber"]{--accent:#ff9c3c;--accent-glow:rgba(255,156,60,0.4);}

[data-theme="ext-bokeh-warm"] body{background:#100a05;color:#fff5e8;font-family:'Outfit',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-warm"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .nav-logo{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-warm"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-warm"] .nav-link{color:var(--text-dim);font-family:'Outfit',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-warm"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-warm"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-warm"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-warm"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-warm"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-warm"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-warm"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-warm"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Outfit',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-warm"] .hero-title{font-family:'Fraunces',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-warm"] .hero-tagline{font-family:'Outfit',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-warm"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-warm"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehwarm_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-warm"] .section-num{font-family:'Fraunces',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-warm"] .section-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-warm"] .section-head .kicker{font-family:'Outfit',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-warm"] .section-head h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-warm"] .about-name{font-family:'Fraunces',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-warm"] .about-role{font-family:'Outfit',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-warm"] .about-bio{font-family:'Outfit',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-warm"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-warm"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-warm"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-warm"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-warm"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-warm"] .stat-num{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-warm"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-warm"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-warm"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-warm"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-warm"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-warm"] .album-info-title{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-warm"] .album-info-meta{font-family:'Outfit',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-warm"] .album-info-desc{font-family:'Outfit',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-warm"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Outfit',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-warm"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-warm"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Outfit',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-warm"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-warm"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-warm"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-warm"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-warm"] .card-label{font-family:'Outfit',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-warm"] .card-value{font-family:'Outfit',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-warm"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-warm"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-warm"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-warm"] .footer-links a{color:var(--text-dim);font-family:'Outfit',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-warm"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-warm"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-warm"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-warm"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehwarm_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehwarm_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehwarm_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-warm ---- */
[data-theme="ext-bokeh-warm"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(255,200,120,0.18),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(255,156,60,0.14),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(255,200,120,0.18),transparent 30%);
  animation:bokeh_bokehwarm_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-warm"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(255,200,120,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(255,156,60,0.14),transparent 30%);
  animation:bokeh_bokehwarm_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-warm{background:linear-gradient(135deg,#100a05,#ffc878);}

/* ############################################################
   THEME: ext-bokeh-cool  (冷光虚化 / Cool Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-cool"]{
  --bg:#050a12;--bg-2:#0a1420;--bg-3:#142030;--bg-4:#1c2c40;
  --text:#f0f8ff;--text-dim:#90b0c8;--text-mid:#6a8098;
  --accent:#5cb8f0;--accent-glow:rgba(92,184,240,0.4);--white:#f0f8ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#050a12ee;
  --font-display:'Syne';--font-body:'Hanken Grotesk';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#050a12;color:#f0f8ff;
}
[data-theme="ext-bokeh-cool"][data-color="ice"]{--accent:#5cb8f0;--accent-glow:rgba(92,184,240,0.4);}
[data-theme="ext-bokeh-cool"][data-color="silver"]{--accent:#a0c8e0;--accent-glow:rgba(160,200,224,0.4);}

[data-theme="ext-bokeh-cool"] body{background:#050a12;color:#f0f8ff;font-family:'Hanken Grotesk',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-cool"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .nav-logo{font-family:'Syne',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-cool"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-cool"] .nav-link{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-cool"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-cool"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-cool"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-cool"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-cool"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-cool"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-cool"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-cool"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-cool"] .hero-title{font-family:'Syne',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-cool"] .hero-tagline{font-family:'Hanken Grotesk',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-cool"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-cool"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehcool_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-cool"] .section-num{font-family:'Syne',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-cool"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-cool"] .section-head .kicker{font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-cool"] .section-head h2{font-family:'Syne',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-cool"] .about-name{font-family:'Syne',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-cool"] .about-role{font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-cool"] .about-bio{font-family:'Hanken Grotesk',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-cool"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-cool"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-cool"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-cool"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-cool"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-cool"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-cool"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-cool"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-cool"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-cool"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-cool"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-cool"] .album-info-title{font-family:'Syne',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-cool"] .album-info-meta{font-family:'Hanken Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-cool"] .album-info-desc{font-family:'Hanken Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-cool"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Hanken Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-cool"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-cool"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Hanken Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-cool"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-cool"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-cool"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-cool"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-cool"] .card-label{font-family:'Hanken Grotesk',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-cool"] .card-value{font-family:'Hanken Grotesk',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-cool"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-cool"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-cool"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-cool"] .footer-links a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-cool"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-cool"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-cool"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-cool"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehcool_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehcool_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehcool_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-cool ---- */
[data-theme="ext-bokeh-cool"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(92,184,240,0.18),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(40,100,200,0.14),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(92,184,240,0.18),transparent 30%);
  animation:bokeh_bokehcool_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-cool"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(92,184,240,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(40,100,200,0.14),transparent 30%);
  animation:bokeh_bokehcool_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-cool{background:linear-gradient(135deg,#050a12,#5cb8f0);}

/* ############################################################
   THEME: ext-bokeh-rainbow  (彩虹虚化 / Rainbow Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-rainbow"]{
  --bg:#080612;--bg-2:#120e22;--bg-3:#1c1632;--bg-4:#2a2040;
  --text:#f0f0ff;--text-dim:#a8a0c0;--text-mid:#786890;
  --accent:#ff6090;--accent-glow:rgba(255,96,144,0.4);--white:#f0f0ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080612ee;
  --font-display:'Unica One';--font-body:'Space Grotesk';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#080612;color:#f0f0ff;
}
[data-theme="ext-bokeh-rainbow"][data-color="neon"]{--accent:#ff6090;--accent-glow:rgba(255,96,144,0.4);}
[data-theme="ext-bokeh-rainbow"][data-color="prism"]{--accent:#00d0c8;--accent-glow:rgba(0,208,200,0.4);}

[data-theme="ext-bokeh-rainbow"] body{background:#080612;color:#f0f0ff;font-family:'Space Grotesk',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-rainbow"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .nav-logo{font-family:'Unica One',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-rainbow"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .nav-link{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-rainbow"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-rainbow"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-rainbow"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-rainbow"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-rainbow"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-rainbow"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-rainbow"] .hero-title{font-family:'Unica One',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-rainbow"] .hero-tagline{font-family:'Space Grotesk',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-rainbow"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-rainbow"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehrainbow_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-rainbow"] .section-num{font-family:'Unica One',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-rainbow"] .section-title{font-family:'Unica One',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-rainbow"] .section-head .kicker{font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .section-head h2{font-family:'Unica One',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-rainbow"] .about-name{font-family:'Unica One',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-rainbow"] .about-role{font-family:'Space Grotesk',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .about-bio{font-family:'Space Grotesk',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-rainbow"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-rainbow"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-rainbow"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-rainbow"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-rainbow"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-rainbow"] .stat-num{font-family:'Unica One',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-rainbow"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-rainbow"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-rainbow"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-rainbow"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-rainbow"] .album-info-title{font-family:'Unica One',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-rainbow"] .album-info-meta{font-family:'Space Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-rainbow"] .album-info-desc{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-rainbow"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Space Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-rainbow"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-rainbow"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Space Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-rainbow"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-rainbow"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-rainbow"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-rainbow"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-rainbow"] .card-label{font-family:'Space Grotesk',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-rainbow"] .card-value{font-family:'Space Grotesk',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-rainbow"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-rainbow"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-rainbow"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .footer-links a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-rainbow"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-rainbow"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-rainbow"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-rainbow"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehrainbow_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehrainbow_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehrainbow_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-rainbow ---- */
[data-theme="ext-bokeh-rainbow"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(255,96,144,0.15),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(0,208,200,0.12),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(255,96,144,0.15),transparent 30%);
  animation:bokeh_bokehrainbow_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-rainbow"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(255,96,144,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(0,208,200,0.12),transparent 30%);
  animation:bokeh_bokehrainbow_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-rainbow{background:linear-gradient(135deg,#080612,#ff6090);}

/* ############################################################
   THEME: ext-bokeh-night  (夜光虚化 / Night Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-night"]{
  --bg:#060408;--bg-2:#0e0814;--bg-3:#180e22;--bg-4:#241430;
  --text:#fff8e0;--text-dim:#c0b078;--text-mid:#8a7a50;
  --accent:#ffe068;--accent-glow:rgba(255,224,104,0.4);--white:#fff8e0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#060408ee;
  --font-display:'Spectral';--font-body:'Karla';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#060408;color:#fff8e0;
}
[data-theme="ext-bokeh-night"][data-color="star"]{--accent:#ffe068;--accent-glow:rgba(255,224,104,0.4);}
[data-theme="ext-bokeh-night"][data-color="moon"]{--accent:#c0d8f0;--accent-glow:rgba(192,216,240,0.4);}

[data-theme="ext-bokeh-night"] body{background:#060408;color:#fff8e0;font-family:'Karla',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-night"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-night"] .nav-logo{font-family:'Spectral',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-night"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-night"] .nav-link{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-night"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-night"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-night"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-night"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-night"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-night"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-night"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-night"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-night"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-night"] .hero-title{font-family:'Spectral',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-night"] .hero-tagline{font-family:'Karla',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-night"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-night"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehnight_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-night"] .section-num{font-family:'Spectral',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-night"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-night"] .section-head .kicker{font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-night"] .section-head h2{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-night"] .about-name{font-family:'Spectral',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-night"] .about-role{font-family:'Karla',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-night"] .about-bio{font-family:'Karla',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-night"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-night"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-night"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-night"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-night"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-night"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-night"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-night"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-night"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-night"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-night"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-night"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-night"] .album-info-title{font-family:'Spectral',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-night"] .album-info-meta{font-family:'Karla',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-night"] .album-info-desc{font-family:'Karla',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-night"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Karla',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-night"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-night"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Karla',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-night"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-night"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-night"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-night"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-night"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-night"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-night"] .card-label{font-family:'Karla',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-night"] .card-value{font-family:'Karla',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-night"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-night"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-night"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-night"] .footer-links a{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-night"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-night"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-night"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-night"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-night"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-night"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehnight_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehnight_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehnight_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-night ---- */
[data-theme="ext-bokeh-night"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(255,224,104,0.16),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(192,216,240,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(255,224,104,0.16),transparent 30%);
  animation:bokeh_bokehnight_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-night"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(255,224,104,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(192,216,240,0.1),transparent 30%);
  animation:bokeh_bokehnight_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-night{background:linear-gradient(135deg,#060408,#ffe068);}

/* ############################################################
   THEME: ext-bokeh-pastel  (柔彩虚化 / Pastel Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-pastel"]{
  --bg:#0c0610;--bg-2:#180e1a;--bg-3:#241828;--bg-4:#34243a;
  --text:#fff0f8;--text-dim:#c8a0b8;--text-mid:#9a7088;
  --accent:#f0a0c8;--accent-glow:rgba(240,160,200,0.4);--white:#fff0f8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0c0610ee;
  --font-display:'Fraunces';--font-body:'Quicksand';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#0c0610;color:#fff0f8;
}
[data-theme="ext-bokeh-pastel"][data-color="pink"]{--accent:#f0a0c8;--accent-glow:rgba(240,160,200,0.4);}
[data-theme="ext-bokeh-pastel"][data-color="lavender"]{--accent:#b8a0e0;--accent-glow:rgba(184,160,224,0.4);}

[data-theme="ext-bokeh-pastel"] body{background:#0c0610;color:#fff0f8;font-family:'Quicksand',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-pastel"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .nav-logo{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-pastel"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-pastel"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-pastel"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-pastel"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-pastel"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-pastel"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-pastel"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-pastel"] .hero-title{font-family:'Fraunces',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-pastel"] .hero-tagline{font-family:'Quicksand',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-pastel"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-pastel"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehpastel_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-pastel"] .section-num{font-family:'Fraunces',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-pastel"] .section-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-pastel"] .section-head .kicker{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .section-head h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-pastel"] .about-name{font-family:'Fraunces',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-pastel"] .about-role{font-family:'Quicksand',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .about-bio{font-family:'Quicksand',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-pastel"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-pastel"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-pastel"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-pastel"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-pastel"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-pastel"] .stat-num{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-pastel"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-pastel"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-pastel"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-pastel"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-pastel"] .album-info-title{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-pastel"] .album-info-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-pastel"] .album-info-desc{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-pastel"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-pastel"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-pastel"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-pastel"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-pastel"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-pastel"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-pastel"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-pastel"] .card-label{font-family:'Quicksand',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-pastel"] .card-value{font-family:'Quicksand',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-pastel"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-pastel"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-pastel"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-pastel"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-pastel"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-pastel"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-pastel"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehpastel_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehpastel_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehpastel_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-pastel ---- */
[data-theme="ext-bokeh-pastel"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(240,160,200,0.16),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(184,160,224,0.12),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(240,160,200,0.16),transparent 30%);
  animation:bokeh_bokehpastel_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-pastel"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(240,160,200,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(184,160,224,0.12),transparent 30%);
  animation:bokeh_bokehpastel_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-pastel{background:linear-gradient(135deg,#0c0610,#f0a0c8);}

/* ############################################################
   THEME: ext-bokeh-forest  (林间虚化 / Forest Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-forest"]{
  --bg:#040a06;--bg-2:#0a1410;--bg-3:#101e18;--bg-4:#182a22;
  --text:#e8ffe0;--text-dim:#88b078;--text-mid:#5a8050;
  --accent:#5cc848;--accent-glow:rgba(92,200,72,0.4);--white:#e8ffe0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#040a06ee;
  --font-display:'Spectral';--font-body:'DM Sans';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#040a06;color:#e8ffe0;
}
[data-theme="ext-bokeh-forest"][data-color="leaf"]{--accent:#5cc848;--accent-glow:rgba(92,200,72,0.4);}
[data-theme="ext-bokeh-forest"][data-color="moss"]{--accent:#88c070;--accent-glow:rgba(136,192,112,0.4);}

[data-theme="ext-bokeh-forest"] body{background:#040a06;color:#e8ffe0;font-family:'DM Sans',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-forest"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .nav-logo{font-family:'Spectral',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-forest"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-forest"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-forest"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-forest"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-forest"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-forest"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-forest"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-forest"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-forest"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-forest"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-forest"] .hero-title{font-family:'Spectral',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-forest"] .hero-tagline{font-family:'DM Sans',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-forest"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-forest"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehforest_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-forest"] .section-num{font-family:'Spectral',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-forest"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-forest"] .section-head .kicker{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-forest"] .section-head h2{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-forest"] .about-name{font-family:'Spectral',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-forest"] .about-role{font-family:'DM Sans',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-forest"] .about-bio{font-family:'DM Sans',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-forest"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-forest"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-forest"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-forest"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-forest"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-forest"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-forest"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-forest"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-forest"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-forest"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-forest"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-forest"] .album-info-title{font-family:'Spectral',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-forest"] .album-info-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-forest"] .album-info-desc{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-forest"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-forest"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-forest"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-forest"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-forest"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-forest"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-forest"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-forest"] .card-label{font-family:'DM Sans',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-forest"] .card-value{font-family:'DM Sans',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-forest"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-forest"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-forest"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-forest"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-forest"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-forest"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-forest"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-forest"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehforest_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehforest_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehforest_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-forest ---- */
[data-theme="ext-bokeh-forest"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(92,200,72,0.15),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(60,140,40,0.12),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(92,200,72,0.15),transparent 30%);
  animation:bokeh_bokehforest_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-forest"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(92,200,72,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(60,140,40,0.12),transparent 30%);
  animation:bokeh_bokehforest_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-forest{background:linear-gradient(135deg,#040a06,#5cc848);}

/* ############################################################
   THEME: ext-bokeh-sunset  (日落虚化 / Sunset Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-sunset"]{
  --bg:#0e0604;--bg-2:#1a0c08;--bg-3:#28140e;--bg-4:#382014;
  --text:#fff0e0;--text-dim:#d09870;--text-mid:#a07050;
  --accent:#ff8848;--accent-glow:rgba(255,136,72,0.4);--white:#fff0e0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0e0604ee;
  --font-display:'Marcellus';--font-body:'Lato';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#0e0604;color:#fff0e0;
}
[data-theme="ext-bokeh-sunset"][data-color="ember"]{--accent:#ff8848;--accent-glow:rgba(255,136,72,0.4);}
[data-theme="ext-bokeh-sunset"][data-color="gold"]{--accent:#ffc068;--accent-glow:rgba(255,192,104,0.4);}

[data-theme="ext-bokeh-sunset"] body{background:#0e0604;color:#fff0e0;font-family:'Lato',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-sunset"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .nav-logo{font-family:'Marcellus',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-sunset"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .nav-link{color:var(--text-dim);font-family:'Lato',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-sunset"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-sunset"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-sunset"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-sunset"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-sunset"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-sunset"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Lato',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-sunset"] .hero-title{font-family:'Marcellus',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-sunset"] .hero-tagline{font-family:'Lato',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-sunset"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-sunset"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehsunset_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-sunset"] .section-num{font-family:'Marcellus',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-sunset"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-sunset"] .section-head .kicker{font-family:'Lato',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .section-head h2{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-sunset"] .about-name{font-family:'Marcellus',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-sunset"] .about-role{font-family:'Lato',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .about-bio{font-family:'Lato',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-sunset"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-sunset"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-sunset"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-sunset"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-sunset"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-sunset"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-sunset"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-sunset"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-sunset"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-sunset"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-sunset"] .album-info-title{font-family:'Marcellus',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-sunset"] .album-info-meta{font-family:'Lato',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-sunset"] .album-info-desc{font-family:'Lato',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-sunset"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Lato',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-sunset"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-sunset"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lato',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-sunset"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-sunset"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-sunset"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-sunset"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-sunset"] .card-label{font-family:'Lato',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-sunset"] .card-value{font-family:'Lato',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-sunset"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-sunset"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-sunset"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .footer-links a{color:var(--text-dim);font-family:'Lato',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-sunset"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-sunset"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-sunset"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-sunset"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehsunset_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehsunset_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehsunset_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-sunset ---- */
[data-theme="ext-bokeh-sunset"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(255,136,72,0.18),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(255,80,40,0.14),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(255,136,72,0.18),transparent 30%);
  animation:bokeh_bokehsunset_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-sunset"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(255,136,72,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(255,80,40,0.14),transparent 30%);
  animation:bokeh_bokehsunset_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-sunset{background:linear-gradient(135deg,#0e0604,#ff8848);}

/* ############################################################
   THEME: ext-bokeh-macro  (微距虚化 / Macro Bokeh)
   ############################################################ */

[data-theme="ext-bokeh-macro"]{
  --bg:#060810;--bg-2:#0c1018;--bg-3:#141828;--bg-4:#1c2238;
  --text:#e8f0ff;--text-dim:#8090b0;--text-mid:#5a6890;
  --accent:#48c0e8;--accent-glow:rgba(72,192,232,0.4);--white:#e8f0ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#060810ee;
  --font-display:'Syne';--font-body:'Manrope';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#060810;color:#e8f0ff;
}
[data-theme="ext-bokeh-macro"][data-color="dew"]{--accent:#48c0e8;--accent-glow:rgba(72,192,232,0.4);}
[data-theme="ext-bokeh-macro"][data-color="focus"]{--accent:#80e0a0;--accent-glow:rgba(128,224,160,0.4);}

[data-theme="ext-bokeh-macro"] body{background:#060810;color:#e8f0ff;font-family:'Manrope',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-bokeh-macro"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .nav-logo{font-family:'Syne',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-bokeh-macro"] .nav-logo span{color:var(--accent);}
[data-theme="ext-bokeh-macro"] .nav-link{color:var(--text-dim);font-family:'Manrope',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-bokeh-macro"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-bokeh-macro"] .nav-link:hover::after{width:100%;}
[data-theme="ext-bokeh-macro"] .nav-link.active{color:var(--accent);}
[data-theme="ext-bokeh-macro"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-bokeh-macro"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-bokeh-macro"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-bokeh-macro"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-bokeh-macro"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Manrope',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-bokeh-macro"] .hero-title{font-family:'Syne',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-bokeh-macro"] .hero-tagline{font-family:'Manrope',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-bokeh-macro"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-bokeh-macro"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:bokeh_bokehmacro_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-bokeh-macro"] .section-num{font-family:'Syne',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-bokeh-macro"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-bokeh-macro"] .section-head .kicker{font-family:'Manrope',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-macro"] .section-head h2{font-family:'Syne',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-bokeh-macro"] .about-name{font-family:'Syne',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-bokeh-macro"] .about-role{font-family:'Manrope',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-bokeh-macro"] .about-bio{font-family:'Manrope',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-bokeh-macro"] .about-img-wrapper{border-radius:16px;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-bokeh-macro"] .about-img-wrapper:hover{border-radius:20px;}
[data-theme="ext-bokeh-macro"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-bokeh-macro"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-bokeh-macro"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-bokeh-macro"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-bokeh-macro"] .album-item{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .album-item:nth-child(even){border-radius:16px;}
[data-theme="ext-bokeh-macro"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-bokeh-macro"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-bokeh-macro"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-bokeh-macro"] .album-info{padding:1.4rem;}
[data-theme="ext-bokeh-macro"] .album-info-title{font-family:'Syne',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-bokeh-macro"] .album-info-meta{font-family:'Manrope',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-bokeh-macro"] .album-info-desc{font-family:'Manrope',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-bokeh-macro"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Manrope',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-bokeh-macro"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-bokeh-macro"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Manrope',sans-serif;transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-bokeh-macro"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .contact-card:nth-child(2){border-radius:16px;}
[data-theme="ext-bokeh-macro"] .contact-card:nth-child(3){border-radius:16px;}
[data-theme="ext-bokeh-macro"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-bokeh-macro"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-bokeh-macro"] .card-label{font-family:'Manrope',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-bokeh-macro"] .card-value{font-family:'Manrope',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-bokeh-macro"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:0;}
[data-theme="ext-bokeh-macro"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-bokeh-macro"] .footer-logo span{color:var(--accent);}
[data-theme="ext-bokeh-macro"] .footer-links a{color:var(--text-dim);font-family:'Manrope',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-bokeh-macro"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-bokeh-macro"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-bokeh-macro"] .stat-item{border-radius:16px;transition:var(--transition);}
[data-theme="ext-bokeh-macro"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
100%{transform:translateY(250%);}}
@keyframes bokeh_bokehmacro_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes bokeh_bokehmacro_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes bokeh_bokehmacro_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-bokeh-macro ---- */
[data-theme="ext-bokeh-macro"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(72,192,232,0.16),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(40,120,200,0.12),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(72,192,232,0.16),transparent 30%);
  animation:bokeh_bokehmacro_drift 12s ease-in-out infinite;
}
[data-theme="ext-bokeh-macro"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(72,192,232,0.4),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(40,120,200,0.12),transparent 30%);
  animation:bokeh_bokehmacro_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-bokeh-macro{background:linear-gradient(135deg,#060810,#48c0e8);}

/* ############################################################
   THEME: ext-organic-sage  (景深虚化 / Depth of Field)
   ############################################################ */

[data-theme="ext-organic-sage"]{
  --bg:#08100c;--bg-2:#0e1814;--bg-3:#162018;--bg-4:#1e2c22;
  --text:#e8f0e0;--text-dim:#7a9a70;--text-mid:#5a7050;
  --accent:#7dd87d;--accent-glow:rgba(125,216,125,0.35);--white:#e8f0e0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#08100cee;
  --font-display:'Spectral';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#08100c;color:#e8f0e0;
}
[data-theme="ext-organic-sage"][data-color="sage"]{--accent:#7dd87d;--accent-glow:rgba(125,216,125,0.35);}
[data-theme="ext-organic-sage"][data-color="olive"]{--accent:#a8c068;--accent-glow:rgba(168,192,104,0.35);}

[data-theme="ext-organic-sage"] body{background:#08100c;color:#e8f0e0;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-sage"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-sage"] .nav-logo{font-family:'Spectral',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-sage"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-sage"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-sage"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-sage"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-sage"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-sage"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-sage"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-sage"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-sage"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-sage"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-sage"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-sage"] .hero-title{font-family:'Spectral',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-sage"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-sage"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-sage"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicsage_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-sage"] .section-num{font-family:'Spectral',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-sage"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-sage"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-sage"] .section-head h2{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-sage"] .about-name{font-family:'Spectral',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-sage"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-sage"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-sage"] .about-img-wrapper{border-radius:50% 48% 52% 50% / 48% 52% 48% 52%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-sage"] .about-img-wrapper:hover{border-radius:48% 52% 50% 48% / 52% 48% 52% 48%;}
[data-theme="ext-organic-sage"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-sage"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-sage"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-sage"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-sage"] .album-item{position:relative;border-radius:30px 50px 30px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-sage"] .album-item:nth-child(even){border-radius:50px 30px 50px 30px;}
[data-theme="ext-organic-sage"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-sage"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-sage"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-sage"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-sage"] .album-info-title{font-family:'Spectral',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-sage"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-sage"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-sage"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-sage"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-sage"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-sage"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-sage"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-sage"] .contact-card:nth-child(2){border-radius:60px 20px 60px 20px;}
[data-theme="ext-organic-sage"] .contact-card:nth-child(3){border-radius:20px 60px 20px 60px;}
[data-theme="ext-organic-sage"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-sage"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-sage"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-sage"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-sage"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:40% 60% 0 0 / 8% 12% 0 0;}
[data-theme="ext-organic-sage"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-sage"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-sage"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-sage"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-sage"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-sage"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-sage"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-sage"] .stat-item{border-radius:40px 50% 40px 50%;transition:var(--transition);}
[data-theme="ext-organic-sage"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicsage_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicsage_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicsage_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicsage_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-sage ---- */
[data-theme="ext-organic-sage"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(125,216,125,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(168,192,104,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(125,216,125,0.12),transparent 30%);
  animation:organic_organicsage_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-sage"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(125,216,125,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(168,192,104,0.1),transparent 30%);
  animation:organic_organicsage_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-sage{background:linear-gradient(135deg,#08100c,#7dd87d);}

/* ############################################################
   THEME: ext-organic-clay  (金色时段 / Golden Hour)
   ############################################################ */

[data-theme="ext-organic-clay"]{
  --bg:#0e0804;--bg-2:#1a1008;--bg-3:#241810;--bg-4:#302218;
  --text:#fff0d8;--text-dim:#c0a070;--text-mid:#907050;
  --accent:#e8b850;--accent-glow:rgba(232,184,80,0.35);--white:#fff0d8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0e0804ee;
  --font-display:'Fraunces';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#0e0804;color:#fff0d8;
}
[data-theme="ext-organic-clay"][data-color="gold"]{--accent:#e8b850;--accent-glow:rgba(232,184,80,0.35);}
[data-theme="ext-organic-clay"][data-color="warm"]{--accent:#f0a040;--accent-glow:rgba(240,160,64,0.35);}

[data-theme="ext-organic-clay"] body{background:#0e0804;color:#fff0d8;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-clay"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-clay"] .nav-logo{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-clay"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-clay"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-clay"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-clay"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-clay"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-clay"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-clay"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-clay"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-clay"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-clay"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-clay"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-clay"] .hero-title{font-family:'Fraunces',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-clay"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-clay"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-clay"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicclay_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-clay"] .section-num{font-family:'Fraunces',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-clay"] .section-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-clay"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-clay"] .section-head h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-clay"] .about-name{font-family:'Fraunces',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-clay"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-clay"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-clay"] .about-img-wrapper{border-radius:60% 40% 55% 45% / 45% 55% 40% 60%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-clay"] .about-img-wrapper:hover{border-radius:45% 55% 60% 40% / 60% 40% 55% 45%;}
[data-theme="ext-organic-clay"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-clay"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-clay"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-clay"] .stat-num{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-clay"] .album-item{position:relative;border-radius:55px 25px 45px 35px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-clay"] .album-item:nth-child(even){border-radius:35px 45px 25px 55px;}
[data-theme="ext-organic-clay"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-clay"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-clay"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-clay"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-clay"] .album-info-title{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-clay"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-clay"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-clay"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-clay"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-clay"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-clay"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-clay"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-clay"] .contact-card:nth-child(2){border-radius:70px 30px 50px 40px;}
[data-theme="ext-organic-clay"] .contact-card:nth-child(3){border-radius:30px 50px 40px 70px;}
[data-theme="ext-organic-clay"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-clay"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-clay"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-clay"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-clay"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:30% 70% 0 0 / 5% 15% 0 0;}
[data-theme="ext-organic-clay"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-clay"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-clay"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-clay"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-clay"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-clay"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-clay"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-clay"] .stat-item{border-radius:50px 25px 50px 25px;transition:var(--transition);}
[data-theme="ext-organic-clay"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicclay_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicclay_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicclay_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicclay_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-clay ---- */
[data-theme="ext-organic-clay"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(232,184,80,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(232,184,80,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(232,184,80,0.12),transparent 30%);
  animation:organic_organicclay_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-clay"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(232,184,80,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(232,184,80,0.1),transparent 30%);
  animation:organic_organicclay_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-clay{background:linear-gradient(135deg,#0e0804,#e8b850);}

/* ############################################################
   THEME: ext-organic-moss  (剪影逆光 / Silhouette)
   ############################################################ */

[data-theme="ext-organic-moss"]{
  --bg:#040406;--bg-2:#0a0a0e;--bg-3:#12121a;--bg-4:#1a1a24;
  --text:#f0f0f4;--text-dim:#888898;--text-mid:#5a5a6a;
  --accent:#ff6840;--accent-glow:rgba(255,104,64,0.35);--white:#f0f0f4;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#040406ee;
  --font-display:'Marcellus';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#040406;color:#f0f0f4;
}
[data-theme="ext-organic-moss"][data-color="fire"]{--accent:#ff6840;--accent-glow:rgba(255,104,64,0.35);}
[data-theme="ext-organic-moss"][data-color="amber"]{--accent:#ffa040;--accent-glow:rgba(255,160,64,0.35);}

[data-theme="ext-organic-moss"] body{background:#040406;color:#f0f0f4;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-moss"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-moss"] .nav-logo{font-family:'Marcellus',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-moss"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-moss"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-moss"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-moss"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-moss"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-moss"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-moss"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-moss"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-moss"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-moss"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-moss"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-moss"] .hero-title{font-family:'Marcellus',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-moss"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-moss"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-moss"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicmoss_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-moss"] .section-num{font-family:'Marcellus',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-moss"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-moss"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-moss"] .section-head h2{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-moss"] .about-name{font-family:'Marcellus',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-moss"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-moss"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-moss"] .about-img-wrapper{border-radius:70% 30% 60% 40% / 40% 60% 30% 70%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-moss"] .about-img-wrapper:hover{border-radius:30% 70% 40% 60% / 60% 40% 70% 30%;}
[data-theme="ext-organic-moss"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-moss"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-moss"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-moss"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-moss"] .album-item{position:relative;border-radius:10px 60px 20px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-moss"] .album-item:nth-child(even){border-radius:50px 20px 60px 10px;}
[data-theme="ext-organic-moss"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-moss"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-moss"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-moss"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-moss"] .album-info-title{font-family:'Marcellus',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-moss"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-moss"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-moss"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-moss"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-moss"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-moss"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-moss"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-moss"] .contact-card:nth-child(2){border-radius:15px 70px 25px 55px;}
[data-theme="ext-organic-moss"] .contact-card:nth-child(3){border-radius:55px 25px 70px 15px;}
[data-theme="ext-organic-moss"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-moss"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-moss"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-moss"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-moss"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:60% 40% 0 0 / 10% 6% 0 0;}
[data-theme="ext-organic-moss"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-moss"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-moss"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-moss"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-moss"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-moss"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-moss"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-moss"] .stat-item{border-radius:15px 60px 15px 60px;transition:var(--transition);}
[data-theme="ext-organic-moss"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicmoss_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicmoss_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicmoss_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicmoss_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-moss ---- */
[data-theme="ext-organic-moss"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(255,104,64,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(255,104,64,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(255,104,64,0.12),transparent 30%);
  animation:organic_organicmoss_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-moss"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(255,104,64,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(255,104,64,0.1),transparent 30%);
  animation:organic_organicmoss_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-moss{background:linear-gradient(135deg,#040406,#ff6840);}

/* ############################################################
   THEME: ext-organic-sand  (长时曝光 / Long Exposure)
   ############################################################ */

[data-theme="ext-organic-sand"]{
  --bg:#060810;--bg-2:#0c1018;--bg-3:#141820;--bg-4:#1c2230;
  --text:#e8ecf4;--text-dim:#7088a0;--text-mid:#4a6080;
  --accent:#48a0e0;--accent-glow:rgba(72,160,224,0.35);--white:#e8ecf4;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#060810ee;
  --font-display:'Spectral';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#060810;color:#e8ecf4;
}
[data-theme="ext-organic-sand"][data-color="flow"]{--accent:#48a0e0;--accent-glow:rgba(72,160,224,0.35);}
[data-theme="ext-organic-sand"][data-color="mist"]{--accent:#88c0d8;--accent-glow:rgba(136,192,216,0.35);}

[data-theme="ext-organic-sand"] body{background:#060810;color:#e8ecf4;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-sand"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-sand"] .nav-logo{font-family:'Spectral',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-sand"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-sand"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-sand"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-sand"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-sand"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-sand"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-sand"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-sand"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-sand"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-sand"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-sand"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-sand"] .hero-title{font-family:'Spectral',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-sand"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-sand"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-sand"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicsand_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-sand"] .section-num{font-family:'Spectral',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-sand"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-sand"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-sand"] .section-head h2{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-sand"] .about-name{font-family:'Spectral',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-sand"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-sand"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-sand"] .about-img-wrapper{border-radius:45% 55% 45% 55% / 55% 45% 55% 45%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-sand"] .about-img-wrapper:hover{border-radius:55% 45% 55% 45% / 45% 55% 45% 55%;}
[data-theme="ext-organic-sand"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-sand"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-sand"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-sand"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-sand"] .album-item{position:relative;border-radius:25px 45px 25px 45px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-sand"] .album-item:nth-child(even){border-radius:45px 25px 45px 25px;}
[data-theme="ext-organic-sand"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-sand"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-sand"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-sand"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-sand"] .album-info-title{font-family:'Spectral',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-sand"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-sand"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-sand"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-sand"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-sand"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-sand"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-sand"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-sand"] .contact-card:nth-child(2){border-radius:35px 55px 35px 55px;}
[data-theme="ext-organic-sand"] .contact-card:nth-child(3){border-radius:55px 35px 55px 35px;}
[data-theme="ext-organic-sand"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-sand"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-sand"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-sand"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-sand"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 4% 4% 0 0;}
[data-theme="ext-organic-sand"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-sand"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-sand"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-sand"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-sand"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-sand"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-sand"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-sand"] .stat-item{border-radius:30px 50px 30px 50px;transition:var(--transition);}
[data-theme="ext-organic-sand"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicsand_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicsand_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicsand_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicsand_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-sand ---- */
[data-theme="ext-organic-sand"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(72,160,224,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(72,160,224,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(72,160,224,0.12),transparent 30%);
  animation:organic_organicsand_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-sand"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(72,160,224,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(72,160,224,0.1),transparent 30%);
  animation:organic_organicsand_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-sand{background:linear-gradient(135deg,#060810,#48a0e0);}

/* ############################################################
   THEME: ext-organic-bark  (单色光影 / Monochrome)
   ############################################################ */

[data-theme="ext-organic-bark"]{
  --bg:#080808;--bg-2:#101010;--bg-3:#181818;--bg-4:#222222;
  --text:#f0f0f0;--text-dim:#888888;--text-mid:#5a5a5a;
  --accent:#d0d0d0;--accent-glow:rgba(208,208,208,0.35);--white:#f0f0f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080808ee;
  --font-display:'Spectral';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#080808;color:#f0f0f0;
}
[data-theme="ext-organic-bark"][data-color="silver"]{--accent:#d0d0d0;--accent-glow:rgba(208,208,208,0.35);}
[data-theme="ext-organic-bark"][data-color="gray"]{--accent:#a0a0a0;--accent-glow:rgba(160,160,160,0.35);}

[data-theme="ext-organic-bark"] body{background:#080808;color:#f0f0f0;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-bark"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-bark"] .nav-logo{font-family:'Spectral',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-bark"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-bark"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-bark"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-bark"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-bark"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-bark"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-bark"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-bark"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-bark"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-bark"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-bark"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-bark"] .hero-title{font-family:'Spectral',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-bark"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-bark"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-bark"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicbark_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-bark"] .section-num{font-family:'Spectral',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-bark"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-bark"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-bark"] .section-head h2{font-family:'Spectral',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-bark"] .about-name{font-family:'Spectral',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-bark"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-bark"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-bark"] .about-img-wrapper{border-radius:65% 35% 70% 30% / 35% 65% 30% 70%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-bark"] .about-img-wrapper:hover{border-radius:35% 65% 30% 70% / 65% 35% 70% 30%;}
[data-theme="ext-organic-bark"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-bark"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-bark"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-bark"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-bark"] .album-item{position:relative;border-radius:5px 55px 15px 45px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-bark"] .album-item:nth-child(even){border-radius:45px 15px 55px 5px;}
[data-theme="ext-organic-bark"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-bark"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-bark"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-bark"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-bark"] .album-info-title{font-family:'Spectral',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-bark"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-bark"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-bark"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-bark"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-bark"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-bark"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-bark"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-bark"] .contact-card:nth-child(2){border-radius:10px 65px 20px 50px;}
[data-theme="ext-organic-bark"] .contact-card:nth-child(3){border-radius:50px 20px 65px 10px;}
[data-theme="ext-organic-bark"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-bark"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-bark"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-bark"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-bark"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:55% 45% 0 0 / 7% 10% 0 0;}
[data-theme="ext-organic-bark"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-bark"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-bark"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-bark"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-bark"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-bark"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-bark"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-bark"] .stat-item{border-radius:10px 55px 10px 55px;transition:var(--transition);}
[data-theme="ext-organic-bark"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicbark_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicbark_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicbark_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicbark_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-bark ---- */
[data-theme="ext-organic-bark"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(208,208,208,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(208,208,208,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(208,208,208,0.12),transparent 30%);
  animation:organic_organicbark_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-bark"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(208,208,208,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(208,208,208,0.1),transparent 30%);
  animation:organic_organicbark_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-bark{background:linear-gradient(135deg,#080808,#d0d0d0);}

/* ############################################################
   THEME: ext-organic-leaf  (双重曝光 / Double Exposure)
   ############################################################ */

[data-theme="ext-organic-leaf"]{
  --bg:#08060e;--bg-2:#100e1a;--bg-3:#181628;--bg-4:#221e36;
  --text:#e8e4f0;--text-dim:#8880a0;--text-mid:#5a5070;
  --accent:#a080e0;--accent-glow:rgba(160,128,224,0.35);--white:#e8e4f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#08060eee;
  --font-display:'Fraunces';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#08060e;color:#e8e4f0;
}
[data-theme="ext-organic-leaf"][data-color="violet"]{--accent:#a080e0;--accent-glow:rgba(160,128,224,0.35);}
[data-theme="ext-organic-leaf"][data-color="teal"]{--accent:#48c0a0;--accent-glow:rgba(72,192,160,0.35);}

[data-theme="ext-organic-leaf"] body{background:#08060e;color:#e8e4f0;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-leaf"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-leaf"] .nav-logo{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-leaf"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-leaf"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-leaf"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-leaf"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-leaf"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-leaf"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-leaf"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-leaf"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-leaf"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-leaf"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-leaf"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-leaf"] .hero-title{font-family:'Fraunces',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-leaf"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-leaf"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-leaf"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicleaf_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-leaf"] .section-num{font-family:'Fraunces',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-leaf"] .section-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-leaf"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-leaf"] .section-head h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-leaf"] .about-name{font-family:'Fraunces',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-leaf"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-leaf"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-leaf"] .about-img-wrapper{border-radius:50% 50% 70% 30% / 50% 50% 30% 70%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-leaf"] .about-img-wrapper:hover{border-radius:50% 50% 30% 70% / 50% 50% 70% 30%;}
[data-theme="ext-organic-leaf"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-leaf"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-leaf"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-leaf"] .stat-num{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-leaf"] .album-item{position:relative;border-radius:40px 20px 50px 10px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-leaf"] .album-item:nth-child(even){border-radius:10px 50px 20px 40px;}
[data-theme="ext-organic-leaf"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-leaf"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-leaf"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-leaf"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-leaf"] .album-info-title{font-family:'Fraunces',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-leaf"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-leaf"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-leaf"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-leaf"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-leaf"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-leaf"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-leaf"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-leaf"] .contact-card:nth-child(2){border-radius:50px 25px 60px 15px;}
[data-theme="ext-organic-leaf"] .contact-card:nth-child(3){border-radius:15px 60px 25px 50px;}
[data-theme="ext-organic-leaf"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-leaf"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-leaf"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-leaf"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-leaf"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:45% 55% 0 0 / 6% 8% 0 0;}
[data-theme="ext-organic-leaf"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-leaf"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-leaf"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-leaf"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-leaf"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-leaf"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-leaf"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-leaf"] .stat-item{border-radius:35px 20px 45px 15px;transition:var(--transition);}
[data-theme="ext-organic-leaf"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicleaf_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicleaf_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicleaf_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicleaf_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-leaf ---- */
[data-theme="ext-organic-leaf"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(160,128,224,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(160,128,224,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(160,128,224,0.12),transparent 30%);
  animation:organic_organicleaf_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-leaf"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(160,128,224,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(160,128,224,0.1),transparent 30%);
  animation:organic_organicleaf_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-leaf{background:linear-gradient(135deg,#08060e,#a080e0);}

/* ############################################################
   THEME: ext-organic-pebble  (渐变光影 / Gradient Light)
   ############################################################ */

[data-theme="ext-organic-pebble"]{
  --bg:#06080e;--bg-2:#0c0e18;--bg-3:#141624;--bg-4:#1c1e32;
  --text:#e8ecf8;--text-dim:#6a80a8;--text-mid:#445878;
  --accent:#5c88e0;--accent-glow:rgba(92,136,224,0.35);--white:#e8ecf8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#06080eee;
  --font-display:'Syne';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#06080e;color:#e8ecf8;
}
[data-theme="ext-organic-pebble"][data-color="blue"]{--accent:#5c88e0;--accent-glow:rgba(92,136,224,0.35);}
[data-theme="ext-organic-pebble"][data-color="cyan"]{--accent:#40c0d8;--accent-glow:rgba(64,192,216,0.35);}

[data-theme="ext-organic-pebble"] body{background:#06080e;color:#e8ecf8;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-pebble"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-pebble"] .nav-logo{font-family:'Syne',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-pebble"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-pebble"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-pebble"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-pebble"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-pebble"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-pebble"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-pebble"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-pebble"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-pebble"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-pebble"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-pebble"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-pebble"] .hero-title{font-family:'Syne',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-pebble"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-pebble"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-pebble"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicpebble_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-pebble"] .section-num{font-family:'Syne',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-pebble"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-pebble"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-pebble"] .section-head h2{font-family:'Syne',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-pebble"] .about-name{font-family:'Syne',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-pebble"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-pebble"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-pebble"] .about-img-wrapper{border-radius:55% 45% 50% 50% / 50% 50% 45% 55%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-pebble"] .about-img-wrapper:hover{border-radius:45% 55% 50% 50% / 50% 50% 55% 45%;}
[data-theme="ext-organic-pebble"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-pebble"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-pebble"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-pebble"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-pebble"] .album-item{position:relative;border-radius:35px 25px 40px 30px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-pebble"] .album-item:nth-child(even){border-radius:30px 40px 25px 35px;}
[data-theme="ext-organic-pebble"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-pebble"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-pebble"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-pebble"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-pebble"] .album-info-title{font-family:'Syne',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-pebble"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-pebble"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-pebble"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-pebble"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-pebble"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-pebble"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-pebble"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-pebble"] .contact-card:nth-child(2){border-radius:45px 35px 50px 40px;}
[data-theme="ext-organic-pebble"] .contact-card:nth-child(3){border-radius:40px 50px 35px 45px;}
[data-theme="ext-organic-pebble"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-pebble"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-pebble"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-pebble"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-pebble"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 7% 0 0;}
[data-theme="ext-organic-pebble"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-pebble"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-pebble"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-pebble"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-pebble"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-pebble"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-pebble"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-pebble"] .stat-item{border-radius:35px 25px 35px 25px;transition:var(--transition);}
[data-theme="ext-organic-pebble"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicpebble_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicpebble_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicpebble_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicpebble_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-pebble ---- */
[data-theme="ext-organic-pebble"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(92,136,224,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(92,136,224,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(92,136,224,0.12),transparent 30%);
  animation:organic_organicpebble_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-pebble"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(92,136,224,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(92,136,224,0.1),transparent 30%);
  animation:organic_organicpebble_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-pebble{background:linear-gradient(135deg,#06080e,#5c88e0);}

/* ############################################################
   THEME: ext-organic-bloom  (倒影镜面 / Reflection)
   ############################################################ */

[data-theme="ext-organic-bloom"]{
  --bg:#04080a;--bg-2:#0a1216;--bg-3:#101a20;--bg-4:#182830;
  --text:#e0f0f4;--text-dim:#6090a0;--text-mid:#406878;
  --accent:#48c8c8;--accent-glow:rgba(72,200,200,0.35);--white:#e0f0f4;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#04080aee;
  --font-display:'Marcellus';--font-body:'Nunito';
  --transition:0.35s cubic-bezier(0.25,0.46,0.45,0.94);
  background:#04080a;color:#e0f0f4;
}
[data-theme="ext-organic-bloom"][data-color="mirror"]{--accent:#48c8c8;--accent-glow:rgba(72,200,200,0.35);}
[data-theme="ext-organic-bloom"][data-color="silver"]{--accent:#90c0c8;--accent-glow:rgba(144,192,200,0.35);}

[data-theme="ext-organic-bloom"] body{background:#04080a;color:#e0f0f4;font-family:'Nunito',sans-serif;cursor:none;}

/* ---- Navbar ---- */
[data-theme="ext-organic-bloom"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-organic-bloom"] .nav-logo{font-family:'Marcellus',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text);}
[data-theme="ext-organic-bloom"] .nav-logo span{color:var(--accent);}
[data-theme="ext-organic-bloom"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.06em;text-transform:uppercase;transition:var(--transition);position:relative;padding:0.4rem 0;}
[data-theme="ext-organic-bloom"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-organic-bloom"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-organic-bloom"] .nav-link:hover::after{width:100%;}
[data-theme="ext-organic-bloom"] .nav-link.active{color:var(--accent);}
[data-theme="ext-organic-bloom"] .nav-link.active::after{width:100%;}

/* ---- Hero ---- */
[data-theme="ext-organic-bloom"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-organic-bloom"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-organic-bloom"] .hero > *{position:relative;z-index:2;}
[data-theme="ext-organic-bloom"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-organic-bloom"] .hero-title{font-family:'Marcellus',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-organic-bloom"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-organic-bloom"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-organic-bloom"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:organic_organicbloom_scroll 2.2s ease-in-out infinite;}

/* ---- Sections ---- */
[data-theme="ext-organic-bloom"] .section-num{font-family:'Marcellus',serif;font-size:0.85rem;color:var(--accent);letter-spacing:0.3em;}
[data-theme="ext-organic-bloom"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);letter-spacing:-0.01em;text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);}
[data-theme="ext-organic-bloom"] .section-head .kicker{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-bloom"] .section-head h2{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4.5vw,3rem);font-weight:700;color:var(--text);}

/* ---- About ---- */
[data-theme="ext-organic-bloom"] .about-name{font-family:'Marcellus',serif;font-size:clamp(2rem,5vw,3.4rem);font-weight:700;color:var(--text);line-height:1.1;}
[data-theme="ext-organic-bloom"] .about-role{font-family:'Nunito',sans-serif;font-size:0.85rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);}
[data-theme="ext-organic-bloom"] .about-bio{font-family:'Nunito',sans-serif;font-size:1.02rem;line-height:1.8;color:var(--text-mid);}
[data-theme="ext-organic-bloom"] .about-img-wrapper{border-radius:45% 55% 45% 55% / 55% 45% 55% 45%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-organic-bloom"] .about-img-wrapper:hover{border-radius:55% 45% 55% 45% / 45% 55% 45% 55%;}
[data-theme="ext-organic-bloom"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-organic-bloom"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-organic-bloom"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-organic-bloom"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}

/* ---- Albums / Works ---- */
[data-theme="ext-organic-bloom"] .album-item{position:relative;border-radius:40px 20px 40px 20px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-organic-bloom"] .album-item:nth-child(even){border-radius:20px 40px 20px 40px;}
[data-theme="ext-organic-bloom"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-organic-bloom"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-organic-bloom"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-organic-bloom"] .album-info{padding:1.4rem;}
[data-theme="ext-organic-bloom"] .album-info-title{font-family:'Marcellus',serif;font-size:1.1rem;color:var(--text);}
[data-theme="ext-organic-bloom"] .album-info-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);letter-spacing:0.05em;}
[data-theme="ext-organic-bloom"] .album-info-desc{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);line-height:1.7;}

/* ---- Buttons ---- */
[data-theme="ext-organic-bloom"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-organic-bloom"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 0 40px var(--accent-glow);}
[data-theme="ext-organic-bloom"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-organic-bloom"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}

/* ---- Contact ---- */
[data-theme="ext-organic-bloom"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-organic-bloom"] .contact-card:nth-child(2){border-radius:50px 25px 50px 25px;}
[data-theme="ext-organic-bloom"] .contact-card:nth-child(3){border-radius:25px 50px 25px 50px;}
[data-theme="ext-organic-bloom"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-organic-bloom"] .card-icon{color:var(--accent);font-size:1.5rem;}
[data-theme="ext-organic-bloom"] .card-label{font-family:'Nunito',sans-serif;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-organic-bloom"] .card-value{font-family:'Nunito',sans-serif;font-size:1rem;color:var(--text);}

/* ---- Footer ---- */
[data-theme="ext-organic-bloom"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 6% 6% 0 0;}
[data-theme="ext-organic-bloom"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-organic-bloom"] .footer-logo span{color:var(--accent);}
[data-theme="ext-organic-bloom"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-organic-bloom"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-organic-bloom"] .social-icon{color:var(--text-dim);font-size:1.2rem;transition:var(--transition);}
[data-theme="ext-organic-bloom"] .social-icon:hover{color:var(--accent);transform:translateY(-3px);}
[data-theme="ext-organic-bloom"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}

/* ---- Stats ---- */
[data-theme="ext-organic-bloom"] .stat-item{border-radius:40px 20px 40px 20px;transition:var(--transition);}
[data-theme="ext-organic-bloom"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}

/* ---- Animations ---- */
@keyframes organic_organicbloom_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
@keyframes organic_organicbloom_float{0%{transform:translateY(0);}50%{transform:translateY(-20px);}100%{transform:translateY(0);}}
@keyframes organic_organicbloom_glow{0%{opacity:0.4;}100%{opacity:1;}}
@keyframes organic_organicbloom_drift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(15px,-15px) scale(1.05);}100%{transform:translate(0,0) scale(1);}}

/* ---- UNIQUE EFFECT: ext-organic-bloom ---- */
[data-theme="ext-organic-bloom"] body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(72,200,200,0.12),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(72,200,200,0.1),transparent 40%),
    radial-gradient(circle at 50% 50%,rgba(72,200,200,0.12),transparent 30%);
  animation:organic_organicbloom_drift 12s ease-in-out infinite;
}
[data-theme="ext-organic-bloom"] body::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 70% 20%,rgba(72,200,200,0.35),transparent 25%),
    radial-gradient(circle at 30% 80%,rgba(72,200,200,0.1),transparent 30%);
  animation:organic_organicbloom_glow 8s ease-in-out infinite alternate;
}

/* ---- Swatch ---- */
.ts-swatch.ts-ap-ext-organic-bloom{background:linear-gradient(135deg,#04080a,#48c8c8);}

/* THEME: ext-glass-crystal
 *   Crystal Glass (水晶玻璃)
 *   Effect: see below
======================================================================== */

/* Variables: Crystal Glass (水晶玻璃) */
[data-theme="ext-glass-crystal"] {
    --bg: #0a0a14;
    --bg-2: #12121f;
    --bg-3: #1a1a2e;
    --bg-4: #22223a;
    --text: #e0e8ff;
    --text-dim: #8892b0;
    --text-mid: #b8c0d8;
    --accent: #60a5fa;
    --accent-glow: rgba(96, 165, 250, 0.3);
    --white: #ffffff;
    --border: rgba(96, 165, 250, 0.15);
    --hero-overlay-color: rgba(10, 10, 20, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,10,20,0.3) 0%, rgba(10,10,20,0.7) 100%);
    --nav-scrolled-bg: rgba(10, 10, 20, 0.85);
    --font-display: "Cormorant Garamond", serif;
    --font-body: "DM Sans", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-crystal"][data-color="crystal"] { --accent: #60a5fa; --accent-glow: rgba(96, 165, 250, 0.3); }
[data-theme="ext-glass-crystal"][data-color="ice"] { --accent: #a5f3fc; --accent-glow: rgba(165, 243, 252, 0.3); }

/* Component styles (ext-glass-crystal) */

/* Cursor reset + body */
[data-theme="ext-glass-crystal"] body,
[data-theme="ext-glass-crystal"] a,
[data-theme="ext-glass-crystal"] button {
    cursor:none;
}
[data-theme="ext-glass-crystal"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-crystal"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-crystal"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-crystal"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-crystal"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-crystal"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-crystal"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-crystal"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-crystal"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 16px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-crystal"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-crystal"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-crystal"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-crystal"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-crystal"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-crystal"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-crystal"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-crystal"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 16px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-crystal"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-crystal"] .album-item {
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-crystal"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-crystal"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-crystal"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-crystal"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-crystal"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-crystal"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-crystal"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-crystal"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-crystal"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-crystal"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-crystal"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-crystal"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-crystal"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-crystal"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-crystal"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-crystal"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-crystal"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-crystal"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-crystal"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 16px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-crystal"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-crystal) */

/* --- Unique Effect: Faceted Crystal Refraction --- */
/* Multiple conic-gradients at grid positions create prism facets with
   subtle hue-rotation shimmer simulating light refracting through crystal. */
[data-theme="ext-glass-crystal"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        conic-gradient(from 0deg at 20% 30%,
            transparent 0deg,
            rgba(96, 165, 250, 0.07) 30deg,
            rgba(165, 243, 252, 0.04) 60deg,
            transparent 120deg),
        conic-gradient(from 60deg at 60% 20%,
            transparent 0deg,
            rgba(96, 165, 250, 0.05) 40deg,
            rgba(165, 243, 252, 0.03) 80deg,
            transparent 180deg),
        conic-gradient(from 120deg at 80% 70%,
            transparent 0deg,
            rgba(96, 165, 250, 0.04) 50deg,
            rgba(165, 243, 252, 0.03) 90deg,
            transparent 150deg),
        conic-gradient(from 30deg at 30% 80%,
            transparent 0deg,
            rgba(165, 243, 252, 0.05) 60deg,
            rgba(96, 165, 250, 0.03) 100deg,
            transparent 200deg),
        conic-gradient(from 90deg at 50% 50%,
            transparent 0deg,
            rgba(96, 165, 250, 0.03) 45deg,
            transparent 90deg),
        conic-gradient(from 210deg at 75% 45%,
            transparent 0deg,
            rgba(165, 243, 252, 0.04) 35deg,
            transparent 70deg);
    animation: glassCrystalShimmer 8s ease-in-out infinite;
}
@keyframes glassCrystalShimmer {
    0%, 100% { opacity: 0.5; filter: hue-rotate(0deg); }
    50%      { opacity: 0.8; filter: hue-rotate(20deg); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-crystal { background: linear-gradient(135deg, #0a0a14 0%, #60a5fa 100%); }


========================================================================
/* THEME: ext-glass-frost
 *   Frost Glass (霜花玻璃)
 *   Effect: see below
======================================================================== */

/* Variables: Frost Glass (霜花玻璃) */
[data-theme="ext-glass-frost"] {
    --bg: #0e141e;
    --bg-2: #161e2a;
    --bg-3: #1e2838;
    --bg-4: #26324a;
    --text: #e8f0ff;
    --text-dim: #8a9ab0;
    --text-mid: #b8c8d8;
    --accent: #7dd3fc;
    --accent-glow: rgba(125, 211, 252, 0.3);
    --white: #ffffff;
    --border: rgba(125, 211, 252, 0.15);
    --hero-overlay-color: rgba(14, 20, 30, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(14,20,30,0.3) 0%, rgba(14,20,30,0.7) 100%);
    --nav-scrolled-bg: rgba(14, 20, 30, 0.85);
    --font-display: "Outfit", sans-serif;
    --font-body: "Space Grotesk", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-frost"][data-color="frost"] { --accent: #7dd3fc; --accent-glow: rgba(125, 211, 252, 0.3); }
[data-theme="ext-glass-frost"][data-color="arctic"] { --accent: #e0f2fe; --accent-glow: rgba(224, 242, 254, 0.3); }

/* Component styles (ext-glass-frost) */

/* Cursor reset + body */
[data-theme="ext-glass-frost"] body,
[data-theme="ext-glass-frost"] a,
[data-theme="ext-glass-frost"] button {
    cursor:none;
}
[data-theme="ext-glass-frost"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-frost"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-frost"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-frost"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-frost"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-frost"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-frost"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-frost"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-frost"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 16px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-frost"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-frost"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-frost"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-frost"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-frost"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-frost"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-frost"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-frost"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 16px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-frost"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-frost"] .album-item {
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-frost"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-frost"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-frost"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-frost"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-frost"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-frost"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-frost"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-frost"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-frost"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-frost"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-frost"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-frost"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-frost"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-frost"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-frost"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-frost"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-frost"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-frost"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-frost"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 16px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-frost"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-frost) */

/* --- Unique Effect: Frost Crystallization Patterns --- */
/* Elongated radial-gradients in branching/dendritic arrangements simulate
   frost crystals growing across a glass surface.  Subtle scale animation
   suggests slow crystalline growth. */
[data-theme="ext-glass-frost"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        radial-gradient(ellipse 80px 200px at 12% 18%, rgba(125, 211, 252, 0.09) 0%, transparent 65%),
        radial-gradient(ellipse 50px 140px at 12% 18%, rgba(224, 242, 254, 0.07) 8%, transparent 55%),
        radial-gradient(ellipse 100px 250px at 38% 12%, rgba(125, 211, 252, 0.08) 0%, transparent 65%),
        radial-gradient(ellipse 45px 130px at 38% 12%, rgba(224, 242, 254, 0.06) 8%, transparent 55%),
        radial-gradient(ellipse 70px 190px at 65% 20%, rgba(125, 211, 252, 0.07) 0%, transparent 65%),
        radial-gradient(ellipse 90px 220px at 88% 28%, rgba(125, 211, 252, 0.06) 0%, transparent 65%),
        radial-gradient(ellipse 60px 160px at 88% 28%, rgba(224, 242, 254, 0.05) 8%, transparent 55%),
        radial-gradient(ellipse 85px 210px at 25% 55%, rgba(125, 211, 252, 0.07) 0%, transparent 65%),
        radial-gradient(ellipse 55px 150px at 50% 48%, rgba(125, 211, 252, 0.05) 0%, transparent 65%),
        radial-gradient(ellipse 70px 180px at 72% 60%, rgba(125, 211, 252, 0.06) 0%, transparent 65%),
        radial-gradient(ellipse 100px 200px at 15% 82%, rgba(125, 211, 252, 0.06) 0%, transparent 65%),
        radial-gradient(ellipse 80px 180px at 60% 85%, rgba(125, 211, 252, 0.05) 0%, transparent 65%),
        radial-gradient(ellipse 50px 140px at 85% 78%, rgba(224, 242, 254, 0.04) 8%, transparent 55%);
    animation: glassFrostGrow 14s ease-in-out infinite;
}
@keyframes glassFrostGrow {
    0%, 100% { opacity: 0.4; transform: scale(1); }
    50%      { opacity: 0.7; transform: scale(1.03); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-frost { background: linear-gradient(135deg, #0e141e 0%, #7dd3fc 100%); }


========================================================================
/* THEME: ext-glass-stained
 *   Stained Glass (彩绘玻璃)
 *   Effect: see below
======================================================================== */

/* Variables: Stained Glass (彩绘玻璃) */
[data-theme="ext-glass-stained"] {
    --bg: #0a0612;
    --bg-2: #14091e;
    --bg-3: #1e0c2a;
    --bg-4: #281038;
    --text: #e8d8ff;
    --text-dim: #9888b0;
    --text-mid: #b8a8d8;
    --accent: #a855f7;
    --accent-glow: rgba(168, 85, 247, 0.3);
    --white: #ffffff;
    --border: rgba(168, 85, 247, 0.15);
    --hero-overlay-color: rgba(10, 6, 18, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,6,18,0.3) 0%, rgba(10,6,18,0.7) 100%);
    --nav-scrolled-bg: rgba(10, 6, 18, 0.85);
    --font-display: "Unica One", sans-serif;
    --font-body: "Barlow", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-stained"][data-color="stained"] { --accent: #a855f7; --accent-glow: rgba(168, 85, 247, 0.3); }
[data-theme="ext-glass-stained"][data-color="jewel"] { --accent: #ec4899; --accent-glow: rgba(236, 72, 153, 0.3); }

/* Component styles (ext-glass-stained) */

/* Cursor reset + body */
[data-theme="ext-glass-stained"] body,
[data-theme="ext-glass-stained"] a,
[data-theme="ext-glass-stained"] button {
    cursor:none;
}
[data-theme="ext-glass-stained"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-stained"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-stained"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-stained"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-stained"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-stained"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-stained"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-stained"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-stained"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-stained"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-stained"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-stained"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-stained"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-stained"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-stained"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-stained"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-stained"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 4px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-stained"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-stained"] .album-item {
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-stained"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-stained"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-stained"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-stained"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-stained"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-stained"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-stained"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-stained"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-stained"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-stained"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-stained"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-stained"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-stained"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-stained"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-stained"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-stained"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-stained"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-stained"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-stained"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 4px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-stained"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-stained) */

/* --- Unique Effect: Stained Glass Panels with Lead Lines --- */
/* Colored linear-gradient panels overlaid with repeating-linear-gradient
   black "lead" lines forming a diamond grid.  Each panel region has a
   different jewel-tone hue, evoking cathedral stained glass. */
[data-theme="ext-glass-stained"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        /* Jewel-tone panel colors at different regions */
        linear-gradient(135deg, rgba(168, 85, 247, 0.10) 0%, rgba(236, 72, 153, 0.07) 50%, rgba(34, 197, 94, 0.06) 100%),
        linear-gradient(45deg, rgba(59, 130, 246, 0.06) 0%, rgba(168, 85, 247, 0.08) 50%, rgba(245, 158, 11, 0.05) 100%),
        linear-gradient(90deg, rgba(220, 38, 38, 0.05) 0%, rgba(168, 85, 247, 0.06) 100%),
        /* Vertical lead lines */
        repeating-linear-gradient(0deg,
            transparent 0px,
            transparent 76px,
            rgba(0, 0, 0, 0.35) 76px,
            rgba(0, 0, 0, 0.35) 80px),
        /* Horizontal lead lines */
        repeating-linear-gradient(90deg,
            transparent 0px,
            transparent 76px,
            rgba(0, 0, 0, 0.35) 76px,
            rgba(0, 0, 0, 0.35) 80px),
        /* Diagonal lead lines */
        repeating-linear-gradient(45deg,
            transparent 0px,
            transparent 107px,
            rgba(0, 0, 0, 0.25) 107px,
            rgba(0, 0, 0, 0.25) 111px);
    background-size: 50% 50%, 50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
    background-position: 0 0, 50% 50%, 0 0, 0 0, 0 0, 0 0;
    animation: glassStainedGlow 10s ease-in-out infinite;
}
@keyframes glassStainedGlow {
    0%, 100% { opacity: 0.45; }
    50%      { opacity: 0.75; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-stained { background: linear-gradient(135deg, #0a0612 0%, #a855f7 100%); }


========================================================================
/* THEME: ext-glass-prism
 *   Prism Glass (棱镜折射)
 *   Effect: see below
======================================================================== */

/* Variables: Prism Glass (棱镜折射) */
[data-theme="ext-glass-prism"] {
    --bg: #0a0820;
    --bg-2: #12102e;
    --bg-3: #1a1838;
    --bg-4: #22204a;
    --text: #e0d8ff;
    --text-dim: #8880b0;
    --text-mid: #b8b0d8;
    --accent: #818cf8;
    --accent-glow: rgba(129, 140, 248, 0.3);
    --white: #ffffff;
    --border: rgba(129, 140, 248, 0.15);
    --hero-overlay-color: rgba(10, 8, 32, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,8,32,0.3) 0%, rgba(10,8,32,0.7) 100%);
    --nav-scrolled-bg: rgba(10, 8, 32, 0.85);
    --font-display: "Syne", sans-serif;
    --font-body: "Work Sans", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-prism"][data-color="prism"] { --accent: #818cf8; --accent-glow: rgba(129, 140, 248, 0.3); }
[data-theme="ext-glass-prism"][data-color="spectrum"] { --accent: #c084fc; --accent-glow: rgba(192, 132, 252, 0.3); }

/* Component styles (ext-glass-prism) */

/* Cursor reset + body */
[data-theme="ext-glass-prism"] body,
[data-theme="ext-glass-prism"] a,
[data-theme="ext-glass-prism"] button {
    cursor:none;
}
[data-theme="ext-glass-prism"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-prism"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-prism"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-prism"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-prism"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-prism"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-prism"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-prism"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-prism"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-prism"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-prism"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-prism"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-prism"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-prism"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-prism"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-prism"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-prism"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 12px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-prism"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-prism"] .album-item {
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-prism"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-prism"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-prism"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-prism"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-prism"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-prism"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 12px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-prism"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-prism"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 12px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-prism"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-prism"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-prism"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-prism"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-prism"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-prism"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-prism"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-prism"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-prism"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-prism"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-prism"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 12px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-prism"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-prism) */

/* --- Unique Effect: Light Spectrum Dispersion --- */
/* A conic-gradient anchored at a top corner disperses a rainbow beam
   downward.  Slow rotation creates the prismatic light-splitting effect. */
[data-theme="ext-glass-prism"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        conic-gradient(from 200deg at 8% 5%,
            transparent 0deg,
            rgba(255, 0, 0, 0.08) 15deg,
            rgba(255, 127, 0, 0.08) 25deg,
            rgba(255, 255, 0, 0.07) 35deg,
            rgba(0, 255, 0, 0.07) 45deg,
            rgba(0, 200, 255, 0.08) 55deg,
            rgba(75, 0, 130, 0.07) 65deg,
            transparent 75deg),
        conic-gradient(from 160deg at 92% 8%,
            transparent 0deg,
            rgba(129, 140, 248, 0.05) 20deg,
            rgba(192, 132, 252, 0.04) 40deg,
            transparent 60deg),
        radial-gradient(circle 150px at 8% 5%, rgba(255, 255, 255, 0.06) 0%, transparent 60%);
    animation: glassPrismRotate 16s linear infinite;
}
@keyframes glassPrismRotate {
    0%   { transform: rotate(0deg); opacity: 0.5; }
    50%  { opacity: 0.7; }
    100% { transform: rotate(360deg); opacity: 0.5; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-prism { background: linear-gradient(135deg, #0a0820 0%, #818cf8 100%); }


========================================================================
/* THEME: ext-glass-aqua
 *   Aqua Glass (水滴玻璃)
 *   Effect: see below
======================================================================== */

/* Variables: Aqua Glass (水滴玻璃) */
[data-theme="ext-glass-aqua"] {
    --bg: #061418;
    --bg-2: #0a1e24;
    --bg-3: #0e2830;
    --bg-4: #123440;
    --text: #d8f0f0;
    --text-dim: #7a98a0;
    --text-mid: #a8c8c8;
    --accent: #06b6d4;
    --accent-glow: rgba(6, 182, 212, 0.3);
    --white: #ffffff;
    --border: rgba(6, 182, 212, 0.15);
    --hero-overlay-color: rgba(6, 20, 24, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(6,20,24,0.3) 0%, rgba(6,20,24,0.7) 100%);
    --nav-scrolled-bg: rgba(6, 20, 24, 0.85);
    --font-display: "Hanken Grotesk", sans-serif;
    --font-body: "Inter", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-aqua"][data-color="aqua"] { --accent: #06b6d4; --accent-glow: rgba(6, 182, 212, 0.3); }
[data-theme="ext-glass-aqua"][data-color="marine"] { --accent: #0ea5e9; --accent-glow: rgba(14, 165, 233, 0.3); }

/* Component styles (ext-glass-aqua) */

/* Cursor reset + body */
[data-theme="ext-glass-aqua"] body,
[data-theme="ext-glass-aqua"] a,
[data-theme="ext-glass-aqua"] button {
    cursor:none;
}
[data-theme="ext-glass-aqua"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-aqua"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-aqua"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-aqua"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-aqua"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-aqua"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-aqua"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-aqua"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-aqua"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 16px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-aqua"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-aqua"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-aqua"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-aqua"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-aqua"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-aqua"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-aqua"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-aqua"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 16px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-aqua"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-aqua"] .album-item {
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-aqua"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-aqua"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-aqua"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-aqua"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-aqua"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-aqua"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-aqua"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-aqua"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-aqua"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-aqua"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-aqua"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-aqua"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-aqua"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-aqua"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-aqua"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-aqua"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-aqua"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-aqua"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-aqua"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 16px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-aqua"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-aqua) */

/* --- Unique Effect: Water Droplets on Glass --- */
/* Many small radial-gradients create individual water droplets: each has a
   bright specular highlight at top-left and a darker rim, mimicking water
   beaded on a glass surface. */
[data-theme="ext-glass-aqua"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle 8px at 12% 18%, rgba(255, 255, 255, 0.18) 0%, rgba(6, 182, 212, 0.10) 35%, rgba(6, 182, 212, 0.03) 65%, transparent 100%),
        radial-gradient(circle 12px at 28% 12%, rgba(255, 255, 255, 0.15) 0%, rgba(6, 182, 212, 0.08) 35%, transparent 65%),
        radial-gradient(circle 6px at 45% 24%, rgba(255, 255, 255, 0.12) 0%, rgba(6, 182, 212, 0.06) 35%, transparent 65%),
        radial-gradient(circle 10px at 62% 10%, rgba(255, 255, 255, 0.16) 0%, rgba(6, 182, 212, 0.09) 35%, transparent 65%),
        radial-gradient(circle 14px at 80% 22%, rgba(255, 255, 255, 0.18) 0%, rgba(6, 182, 212, 0.10) 35%, transparent 65%),
        radial-gradient(circle 7px at 92% 35%, rgba(255, 255, 255, 0.13) 0%, rgba(6, 182, 212, 0.07) 35%, transparent 65%),
        radial-gradient(circle 9px at 18% 48%, rgba(255, 255, 255, 0.14) 0%, rgba(6, 182, 212, 0.08) 35%, transparent 65%),
        radial-gradient(circle 16px at 40% 52%, rgba(255, 255, 255, 0.17) 0%, rgba(6, 182, 212, 0.09) 35%, transparent 65%),
        radial-gradient(circle 6px at 58% 44%, rgba(255, 255, 255, 0.12) 0%, rgba(6, 182, 212, 0.06) 35%, transparent 65%),
        radial-gradient(circle 11px at 75% 58%, rgba(255, 255, 255, 0.15) 0%, rgba(6, 182, 212, 0.08) 35%, transparent 65%),
        radial-gradient(circle 8px at 90% 50%, rgba(255, 255, 255, 0.13) 0%, rgba(6, 182, 212, 0.07) 35%, transparent 65%),
        radial-gradient(circle 13px at 10% 72%, rgba(255, 255, 255, 0.16) 0%, rgba(6, 182, 212, 0.09) 35%, transparent 65%),
        radial-gradient(circle 7px at 30% 65%, rgba(255, 255, 255, 0.12) 0%, rgba(6, 182, 212, 0.06) 35%, transparent 65%),
        radial-gradient(circle 10px at 48% 78%, rgba(255, 255, 255, 0.14) 0%, rgba(6, 182, 212, 0.08) 35%, transparent 65%),
        radial-gradient(circle 15px at 65% 82%, rgba(255, 255, 255, 0.17) 0%, rgba(6, 182, 212, 0.10) 35%, transparent 65%),
        radial-gradient(circle 6px at 82% 88%, rgba(255, 255, 255, 0.11) 0%, rgba(6, 182, 212, 0.06) 35%, transparent 65%),
        radial-gradient(circle 9px at 22% 90%, rgba(255, 255, 255, 0.14) 0%, rgba(6, 182, 212, 0.07) 35%, transparent 65%),
        radial-gradient(circle 7px at 88% 15%, rgba(255, 255, 255, 0.12) 0%, rgba(6, 182, 212, 0.06) 35%, transparent 65%);
    animation: glassAquaShimmer 7s ease-in-out infinite;
}
@keyframes glassAquaShimmer {
    0%, 100% { opacity: 0.55; }
    50%      { opacity: 0.85; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-aqua { background: linear-gradient(135deg, #061418 0%, #06b6d4 100%); }


========================================================================
/* THEME: ext-glass-amber
 *   Amber Glass (琥珀玻璃)
 *   Effect: see below
======================================================================== */

/* Variables: Amber Glass (琥珀玻璃) */
[data-theme="ext-glass-amber"] {
    --bg: #14080a;
    --bg-2: #1e0c10;
    --bg-3: #281016;
    --bg-4: #32141c;
    --text: #f5e0d0;
    --text-dim: #a08878;
    --text-mid: #c8b0a0;
    --accent: #f59e0b;
    --accent-glow: rgba(245, 158, 11, 0.3);
    --white: #ffffff;
    --border: rgba(245, 158, 11, 0.15);
    --hero-overlay-color: rgba(20, 8, 10, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(20,8,10,0.3) 0%, rgba(20,8,10,0.7) 100%);
    --nav-scrolled-bg: rgba(20, 8, 10, 0.85);
    --font-display: "Marcellus", serif;
    --font-body: "Karla", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-amber"][data-color="amber"] { --accent: #f59e0b; --accent-glow: rgba(245, 158, 11, 0.3); }
[data-theme="ext-glass-amber"][data-color="resin"] { --accent: #d97706; --accent-glow: rgba(217, 119, 6, 0.3); }

/* Component styles (ext-glass-amber) */

/* Cursor reset + body */
[data-theme="ext-glass-amber"] body,
[data-theme="ext-glass-amber"] a,
[data-theme="ext-glass-amber"] button {
    cursor:none;
}
[data-theme="ext-glass-amber"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-amber"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-amber"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-amber"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-amber"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-amber"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-amber"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-amber"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-amber"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-amber"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-amber"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-amber"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-amber"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-amber"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-amber"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-amber"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-amber"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 12px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-amber"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-amber"] .album-item {
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-amber"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-amber"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-amber"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-amber"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-amber"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-amber"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 12px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-amber"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-amber"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 12px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-amber"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-amber"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-amber"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-amber"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-amber"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-amber"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-amber"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-amber"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-amber"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-amber"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-amber"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 12px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-amber"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-amber) */

/* --- Unique Effect: Trapped Elements in Amber Resin --- */
/* Irregular warm-golden radial-gradients suggest ancient bubbles and
   organic inclusions frozen in amber.  A diagonal amber tint overlays
   everything for deep resinous transparency. */
[data-theme="ext-glass-amber"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        /* Trapped bubble / inclusion shapes */
        radial-gradient(ellipse 30px 16px at 18% 28%, rgba(245, 158, 11, 0.14) 0%, transparent 60%),
        radial-gradient(ellipse 18px 38px at 42% 18%, rgba(217, 119, 6, 0.11) 0%, transparent 60%),
        radial-gradient(circle 10px at 33% 42%, rgba(245, 158, 11, 0.09) 0%, transparent 60%),
        radial-gradient(ellipse 26px 12px at 68% 32%, rgba(217, 119, 6, 0.12) 0%, transparent 60%),
        radial-gradient(circle 8px at 52% 38%, rgba(245, 158, 11, 0.07) 0%, transparent 60%),
        radial-gradient(ellipse 20px 35px at 15% 58%, rgba(245, 158, 11, 0.10) 0%, transparent 60%),
        radial-gradient(circle 14px at 38% 62%, rgba(217, 119, 6, 0.09) 0%, transparent 60%),
        radial-gradient(ellipse 32px 18px at 58% 55%, rgba(245, 158, 11, 0.13) 0%, transparent 60%),
        radial-gradient(circle 11px at 75% 48%, rgba(217, 119, 6, 0.08) 0%, transparent 60%),
        radial-gradient(ellipse 22px 28px at 82% 62%, rgba(245, 158, 11, 0.11) 0%, transparent 60%),
        radial-gradient(circle 9px at 25% 78%, rgba(217, 119, 6, 0.08) 0%, transparent 60%),
        radial-gradient(ellipse 28px 16px at 48% 82%, rgba(245, 158, 11, 0.12) 0%, transparent 60%),
        radial-gradient(circle 13px at 70% 88%, rgba(217, 119, 6, 0.09) 0%, transparent 60%),
        radial-gradient(circle 7px at 88% 75%, rgba(245, 158, 11, 0.07) 0%, transparent 60%),
        /* Overall amber resin tint */
        linear-gradient(135deg, rgba(245, 158, 11, 0.05) 0%, rgba(217, 119, 6, 0.04) 50%, rgba(180, 83, 9, 0.03) 100%);
    animation: glassAmberPulse 11s ease-in-out infinite;
}
@keyframes glassAmberPulse {
    0%, 100% { opacity: 0.5; }
    50%      { opacity: 0.75; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-amber { background: linear-gradient(135deg, #14080a 0%, #f59e0b 100%); }


========================================================================
/* THEME: ext-glass-opal
 *   Opal Glass (蛋白石)
 *   Effect: see below
======================================================================== */

/* Variables: Opal Glass (蛋白石) */
[data-theme="ext-glass-opal"] {
    --bg: #0a0a18;
    --bg-2: #12121e;
    --bg-3: #1a1a2a;
    --bg-4: #22223a;
    --text: #e8e8f0;
    --text-dim: #8888a0;
    --text-mid: #b8b8d0;
    --accent: #c084fc;
    --accent-glow: rgba(192, 132, 252, 0.3);
    --white: #ffffff;
    --border: rgba(192, 132, 252, 0.15);
    --hero-overlay-color: rgba(10, 10, 24, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,10,24,0.3) 0%, rgba(10,10,24,0.7) 100%);
    --nav-scrolled-bg: rgba(10, 10, 24, 0.85);
    --font-display: "Fraunces", serif;
    --font-body: "Manrope", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-opal"][data-color="opal"] { --accent: #c084fc; --accent-glow: rgba(192, 132, 252, 0.3); }
[data-theme="ext-glass-opal"][data-color="iridescent"] { --accent: #f0abfc; --accent-glow: rgba(240, 171, 252, 0.3); }

/* Component styles (ext-glass-opal) */

/* Cursor reset + body */
[data-theme="ext-glass-opal"] body,
[data-theme="ext-glass-opal"] a,
[data-theme="ext-glass-opal"] button {
    cursor:none;
}
[data-theme="ext-glass-opal"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-opal"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-opal"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-opal"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-opal"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-opal"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-opal"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-opal"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-opal"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 16px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-opal"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-opal"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-opal"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-opal"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-opal"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-opal"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-opal"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-opal"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 16px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-opal"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-opal"] .album-item {
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-opal"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-opal"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-opal"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-opal"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-opal"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-opal"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-opal"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-opal"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 16px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-opal"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-opal"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-opal"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-opal"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-opal"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-opal"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-opal"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-opal"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-opal"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-opal"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-opal"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 16px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-opal"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-opal) */

/* --- Unique Effect: Iridescent Opal Color Play --- */
/* Two overlapping conic-gradients with pastel hues rotate in opposite
   directions, creating the shifting iridescent play-of-color seen in
   precious opal. */
[data-theme="ext-glass-opal"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        conic-gradient(from 0deg at 30% 40%,
            rgba(192, 132, 252, 0.09) 0deg,
            rgba(240, 171, 252, 0.07) 45deg,
            rgba(147, 197, 253, 0.08) 90deg,
            rgba(196, 181, 253, 0.07) 135deg,
            rgba(252, 211, 77, 0.06) 180deg,
            rgba(167, 243, 208, 0.07) 225deg,
            rgba(192, 132, 252, 0.09) 270deg,
            rgba(240, 171, 252, 0.07) 315deg,
            rgba(192, 132, 252, 0.09) 360deg),
        conic-gradient(from 180deg at 70% 60%,
            rgba(252, 211, 77, 0.06) 0deg,
            rgba(167, 243, 208, 0.07) 60deg,
            rgba(147, 197, 253, 0.08) 120deg,
            rgba(192, 132, 252, 0.09) 180deg,
            rgba(240, 171, 252, 0.07) 240deg,
            rgba(252, 211, 77, 0.06) 300deg,
            rgba(252, 211, 77, 0.06) 360deg);
    animation: glassOpalRotate 22s linear infinite;
}
@keyframes glassOpalRotate {
    0%   { opacity: 0.5; transform: rotate(0deg); }
    50%  { opacity: 0.7; }
    100% { opacity: 0.5; transform: rotate(360deg); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-opal { background: linear-gradient(135deg, #0a0a18 0%, #c084fc 100%); }


========================================================================
/* THEME: ext-glass-smoke
 *   Smoke Glass (烟熏玻璃)
 *   Effect: see below
======================================================================== */

/* Variables: Smoke Glass (烟熏玻璃) */
[data-theme="ext-glass-smoke"] {
    --bg: #0e0e12;
    --bg-2: #16161c;
    --bg-3: #1e1e26;
    --bg-4: #262630;
    --text: #d8d8e0;
    --text-dim: #787888;
    --text-mid: #a8a8b8;
    --accent: #9ca3af;
    --accent-glow: rgba(156, 163, 175, 0.3);
    --white: #ffffff;
    --border: rgba(156, 163, 175, 0.15);
    --hero-overlay-color: rgba(14, 14, 18, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(14,14,18,0.3) 0%, rgba(14,14,18,0.7) 100%);
    --nav-scrolled-bg: rgba(14, 14, 18, 0.85);
    --font-display: "Spectral", serif;
    --font-body: "Inter", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-glass-smoke"][data-color="smoke"] { --accent: #9ca3af; --accent-glow: rgba(156, 163, 175, 0.3); }
[data-theme="ext-glass-smoke"][data-color="ash"] { --accent: #6b7280; --accent-glow: rgba(107, 114, 128, 0.3); }

/* Component styles (ext-glass-smoke) */

/* Cursor reset + body */
[data-theme="ext-glass-smoke"] body,
[data-theme="ext-glass-smoke"] a,
[data-theme="ext-glass-smoke"] button {
    cursor:none;
}
[data-theme="ext-glass-smoke"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-glass-smoke"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-glass-smoke"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-glass-smoke"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-glass-smoke"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-glass-smoke"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-glass-smoke"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-glass-smoke"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-glass-smoke"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-glass-smoke"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-glass-smoke"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-glass-smoke"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-glass-smoke"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-glass-smoke"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-glass-smoke"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-glass-smoke"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-glass-smoke"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 8px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-glass-smoke"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-glass-smoke"] .album-item {
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-glass-smoke"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-glass-smoke"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-glass-smoke"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-glass-smoke"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-glass-smoke"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-glass-smoke"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-glass-smoke"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-glass-smoke"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-glass-smoke"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-glass-smoke"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-glass-smoke"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-glass-smoke"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-glass-smoke"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-glass-smoke"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-glass-smoke"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-glass-smoke"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-glass-smoke"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-glass-smoke"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-glass-smoke"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-glass-smoke"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-glass-smoke) */

/* --- Unique Effect: Smoky Swirls --- */
/* Large semi-transparent gray radial-gradients drift and translate,
   creating slow swirling smoke-like motion across the surface. */
[data-theme="ext-glass-smoke"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        radial-gradient(ellipse 300px 200px at 18% 28%, rgba(156, 163, 175, 0.09) 0%, transparent 70%),
        radial-gradient(ellipse 250px 300px at 72% 18%, rgba(107, 114, 128, 0.07) 0%, transparent 70%),
        radial-gradient(ellipse 200px 250px at 48% 48%, rgba(156, 163, 175, 0.08) 0%, transparent 70%),
        radial-gradient(ellipse 350px 200px at 82% 68%, rgba(107, 114, 128, 0.06) 0%, transparent 70%),
        radial-gradient(ellipse 250px 300px at 28% 78%, rgba(156, 163, 175, 0.07) 0%, transparent 70%),
        radial-gradient(ellipse 200px 150px at 60% 88%, rgba(107, 114, 128, 0.06) 0%, transparent 70%),
        radial-gradient(ellipse 280px 180px at 90% 45%, rgba(156, 163, 175, 0.06) 0%, transparent 70%),
        radial-gradient(ellipse 180px 220px at 8% 55%, rgba(107, 114, 128, 0.05) 0%, transparent 70%);
    animation: glassSmokeSwirl 16s ease-in-out infinite;
}
@keyframes glassSmokeSwirl {
    0%, 100% { opacity: 0.4; transform: translate(0, 0) scale(1); }
    25%      { opacity: 0.6; transform: translate(12px, -8px) scale(1.05); }
    50%      { opacity: 0.5; transform: translate(-10px, 6px) scale(0.98); }
    75%      { opacity: 0.55; transform: translate(8px, 10px) scale(1.03); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-glass-smoke { background: linear-gradient(135deg, #0e0e12 0%, #9ca3af 100%); }


========================================================================
/* THEME: ext-cinema-noir
 *   Film Noir (黑色电影)
 *   Effect: see below
======================================================================== */

/* Variables: Film Noir (黑色电影) */
[data-theme="ext-cinema-noir"] {
    --bg: #080808;
    --bg-2: #101010;
    --bg-3: #181818;
    --bg-4: #202020;
    --text: #e8e8e8;
    --text-dim: #787878;
    --text-mid: #a8a8a8;
    --accent: #ffffff;
    --accent-glow: rgba(255, 255, 255, 0.2);
    --white: #ffffff;
    --border: rgba(255, 255, 255, 0.12);
    --hero-overlay-color: rgba(8, 8, 8, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(8,8,8,0.3) 0%, rgba(8,8,8,0.8) 100%);
    --nav-scrolled-bg: rgba(8, 8, 8, 0.9);
    --font-display: "Anton", sans-serif;
    --font-body: "IBM Plex Sans", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-noir"][data-color="noir"] { --accent: #ffffff; --accent-glow: rgba(255, 255, 255, 0.2); }
[data-theme="ext-cinema-noir"][data-color="shadow"] { --accent: #a0a0a0; --accent-glow: rgba(160, 160, 160, 0.25); }

/* Component styles (ext-cinema-noir) */

/* Cursor reset + body */
[data-theme="ext-cinema-noir"] body,
[data-theme="ext-cinema-noir"] a,
[data-theme="ext-cinema-noir"] button {
    cursor:none;
}
[data-theme="ext-cinema-noir"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-noir"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-noir"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-noir"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-noir"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-noir"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-noir"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-noir"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-noir"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-noir"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-noir"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-noir"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-noir"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-noir"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-noir"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-noir"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-noir"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 4px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-noir"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-noir"] .album-item {
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-noir"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-noir"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-noir"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-noir"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-noir"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-noir"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-noir"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-noir"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-noir"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-noir"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-noir"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-noir"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-noir"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-noir"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-noir"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-noir"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-noir"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-noir"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-noir"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 4px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-noir"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-noir) */

/* --- Unique Effect: Venetian Blind Shadows --- */
/* repeating-linear-gradient creates alternating dark/light horizontal
   stripes simulating light filtering through venetian blinds - the
   quintessential film-noir lighting motif.  Body is slightly desaturated. */
[data-theme="ext-cinema-noir"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: repeating-linear-gradient(
        0deg,
        transparent 0px,
        transparent 42px,
        rgba(0, 0, 0, 0.28) 42px,
        rgba(0, 0, 0, 0.28) 58px,
        transparent 58px,
        transparent 74px,
        rgba(255, 255, 255, 0.035) 74px,
        rgba(255, 255, 255, 0.035) 78px
    );
    animation: cinemaNoirBlinds 8s ease-in-out infinite;
}
[data-theme="ext-cinema-noir"] body {
    filter: grayscale(0.3);
}
@keyframes cinemaNoirBlinds {
    0%, 100% { opacity: 0.55; }
    50%      { opacity: 0.8; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-noir { background: linear-gradient(135deg, #080808 0%, #ffffff 100%); }


========================================================================
/* THEME: ext-cinema-retro
 *   Retro Film (复古胶片)
 *   Effect: see below
======================================================================== */

/* Variables: Retro Film (复古胶片) */
[data-theme="ext-cinema-retro"] {
    --bg: #12100a;
    --bg-2: #1c180e;
    --bg-3: #262012;
    --bg-4: #30281a;
    --text: #e8dcc0;
    --text-dim: #807058;
    --text-mid: #b0a088;
    --accent: #d4a544;
    --accent-glow: rgba(212, 165, 68, 0.3);
    --white: #ffffff;
    --border: rgba(212, 165, 68, 0.15);
    --hero-overlay-color: rgba(18, 16, 10, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(18,16,10,0.3) 0%, rgba(18,16,10,0.7) 100%);
    --nav-scrolled-bg: rgba(18, 16, 10, 0.85);
    --font-display: "Abril Fatface", serif;
    --font-body: "Lato", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-retro"][data-color="retro"] { --accent: #d4a544; --accent-glow: rgba(212, 165, 68, 0.3); }
[data-theme="ext-cinema-retro"][data-color="sepia"] { --accent: #a0804a; --accent-glow: rgba(160, 128, 74, 0.3); }

/* Component styles (ext-cinema-retro) */

/* Cursor reset + body */
[data-theme="ext-cinema-retro"] body,
[data-theme="ext-cinema-retro"] a,
[data-theme="ext-cinema-retro"] button {
    cursor:none;
}
[data-theme="ext-cinema-retro"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-retro"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-retro"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-retro"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-retro"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-retro"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-retro"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-retro"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-retro"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-retro"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-retro"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-retro"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-retro"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-retro"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-retro"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-retro"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-retro"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 4px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-retro"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-retro"] .album-item {
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-retro"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-retro"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-retro"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-retro"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-retro"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-retro"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-retro"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-retro"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-retro"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-retro"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-retro"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-retro"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-retro"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-retro"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-retro"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-retro"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-retro"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-retro"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-retro"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 4px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-retro"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-retro) */

/* --- Unique Effect: Film Grain + Scratches --- */
/* body::before: fine repeating-linear-gradient film-grain texture.
   body::after: vertical scratch marks that jump position erratically.
   Album images get a sepia tint for the full retro-film aesthetic. */
[data-theme="ext-cinema-retro"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: repeating-linear-gradient(
        0deg,
        transparent 0px,
        rgba(255, 255, 255, 0.012) 1px,
        transparent 2px,
        rgba(0, 0, 0, 0.025) 3px,
        transparent 4px
    );
    opacity: 0.55;
}
[data-theme="ext-cinema-retro"] body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        linear-gradient(90deg, transparent 47.5%, rgba(255, 255, 255, 0.06) 47.7%, transparent 47.9%),
        linear-gradient(90deg, transparent 71.2%, rgba(255, 255, 255, 0.04) 71.4%, transparent 71.6%),
        linear-gradient(90deg, transparent 22.8%, rgba(255, 255, 255, 0.03) 23.0%, transparent 23.2%);
    animation: cinemaRetroScratch 3s steps(1) infinite;
}
[data-theme="ext-cinema-retro"] .album-item img {
    filter: sepia(0.3);
}
@keyframes cinemaRetroScratch {
    0%   { opacity: 0.3; transform: translateX(0); }
    20%  { opacity: 0.7; transform: translateX(4px); }
    40%  { opacity: 0.2; transform: translateX(-2px); }
    60%  { opacity: 0.5; transform: translateX(3px); }
    80%  { opacity: 0.4; transform: translateX(-1px); }
    100% { opacity: 0.3; transform: translateX(0); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-retro { background: linear-gradient(135deg, #12100a 0%, #d4a544 100%); }


========================================================================
/* THEME: ext-cinema-widescreen
 *   Widescreen (宽银幕)
 *   Effect: see below
======================================================================== */

/* Variables: Widescreen (宽银幕) */
[data-theme="ext-cinema-widescreen"] {
    --bg: #0a0a0a;
    --bg-2: #121212;
    --bg-3: #1a1a1a;
    --bg-4: #222222;
    --text: #f0f0f0;
    --text-dim: #787878;
    --text-mid: #a8a8a8;
    --accent: #fbbf24;
    --accent-glow: rgba(251, 191, 36, 0.3);
    --white: #ffffff;
    --border: rgba(251, 191, 36, 0.15);
    --hero-overlay-color: rgba(10, 10, 10, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,10,10,0.3) 0%, rgba(10,10,10,0.8) 100%);
    --nav-scrolled-bg: rgba(10, 10, 10, 0.9);
    --font-display: "Oswald", sans-serif;
    --font-body: "Roboto Condensed", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-widescreen"][data-color="cinema"] { --accent: #fbbf24; --accent-glow: rgba(251, 191, 36, 0.3); }
[data-theme="ext-cinema-widescreen"][data-color="gold"] { --accent: #f59e0b; --accent-glow: rgba(245, 158, 11, 0.3); }

/* Component styles (ext-cinema-widescreen) */

/* Cursor reset + body */
[data-theme="ext-cinema-widescreen"] body,
[data-theme="ext-cinema-widescreen"] a,
[data-theme="ext-cinema-widescreen"] button {
    cursor:none;
}
[data-theme="ext-cinema-widescreen"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-widescreen"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-widescreen"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-widescreen"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-widescreen"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-widescreen"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-widescreen"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-widescreen"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-widescreen"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-widescreen"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-widescreen"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-widescreen"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-widescreen"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-widescreen"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-widescreen"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-widescreen"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-widescreen"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 4px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-widescreen"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-widescreen"] .album-item {
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-widescreen"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-widescreen"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-widescreen"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-widescreen"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-widescreen"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-widescreen"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-widescreen"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-widescreen"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 4px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-widescreen"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-widescreen"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-widescreen"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-widescreen"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-widescreen"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-widescreen"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-widescreen"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-widescreen"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-widescreen"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-widescreen"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-widescreen"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 4px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-widescreen"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-widescreen) */

/* --- Unique Effect: Cinematic Letterbox + Film Perforations --- */
/* Top and bottom 60px black bars (letterbox) with small white perforation
   holes punched along each bar via repeating-radial-gradient.  z-index is
   set high (999) so bars overlay page content like a real cinema mask. */
[data-theme="ext-cinema-widescreen"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 999;            /* bars must overlay content */
    pointer-events: none;
    background-image:
        /* Top perforation strip */
        repeating-radial-gradient(circle 3px at 20px 30px,
            rgba(255, 255, 255, 0.22) 0%,
            rgba(255, 255, 255, 0.22) 100%,
            transparent 100%),
        /* Bottom perforation strip */
        repeating-radial-gradient(circle 3px at 20px 30px,
            rgba(255, 255, 255, 0.22) 0%,
            rgba(255, 255, 255, 0.22) 100%,
            transparent 100%),
        /* Letterbox bars: black at top 60px and bottom 60px */
        linear-gradient(to bottom,
            #000 0px,
            #000 60px,
            transparent 60px,
            transparent calc(100% - 60px),
            #000 calc(100% - 60px),
            #000 100%);
    background-size: 40px 60px, 40px 60px, 100% 100%;
    background-position: 0 0, 0 100%, 0 0;
    background-repeat: repeat-x, repeat-x, no-repeat;
    animation: cinemaWidescreenGlow 6s ease-in-out infinite;
}
@keyframes cinemaWidescreenGlow {
    0%, 100% { opacity: 0.92; }
    50%      { opacity: 1; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-widescreen { background: linear-gradient(135deg, #0a0a0a 0%, #fbbf24 100%); }


========================================================================
/* THEME: ext-cinema-vintage
 *   Vintage Cinema (老电影)
 *   Effect: see below
======================================================================== */

/* Variables: Vintage Cinema (老电影) */
[data-theme="ext-cinema-vintage"] {
    --bg: #100e08;
    --bg-2: #1a180e;
    --bg-3: #242214;
    --bg-4: #2e2c1a;
    --text: #e0d4b8;
    --text-dim: #786c50;
    --text-mid: #a89878;
    --accent: #ca8a04;
    --accent-glow: rgba(202, 138, 4, 0.3);
    --white: #ffffff;
    --border: rgba(202, 138, 4, 0.15);
    --hero-overlay-color: rgba(16, 14, 8, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(16,14,8,0.3) 0%, rgba(16,14,8,0.7) 100%);
    --nav-scrolled-bg: rgba(16, 14, 8, 0.85);
    --font-display: "Playfair Display", serif;
    --font-body: "Source Sans 3", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-vintage"][data-color="vintage"] { --accent: #ca8a04; --accent-glow: rgba(202, 138, 4, 0.3); }
[data-theme="ext-cinema-vintage"][data-color="antique"] { --accent: #92740a; --accent-glow: rgba(146, 116, 10, 0.3); }

/* Component styles (ext-cinema-vintage) */

/* Cursor reset + body */
[data-theme="ext-cinema-vintage"] body,
[data-theme="ext-cinema-vintage"] a,
[data-theme="ext-cinema-vintage"] button {
    cursor:none;
}
[data-theme="ext-cinema-vintage"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-vintage"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-vintage"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-vintage"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-vintage"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-vintage"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-vintage"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-vintage"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-vintage"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 2px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-vintage"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-vintage"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-vintage"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-vintage"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-vintage"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-vintage"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-vintage"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-vintage"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 2px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-vintage"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-vintage"] .album-item {
    border-radius: 2px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-vintage"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-vintage"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-vintage"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-vintage"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-vintage"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-vintage"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 2px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-vintage"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-vintage"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 2px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-vintage"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-vintage"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 2px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-vintage"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-vintage"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-vintage"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-vintage"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-vintage"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-vintage"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-vintage"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-vintage"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-vintage"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 2px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-vintage"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-vintage) */

/* --- Unique Effect: Old Film Flicker + Dust --- */
/* body::before: scattered tiny white dust particles.  Body has a very
   subtle opacity flicker animation simulating an old projector, plus
   contrast/brightness filter for faded vintage look. */
[data-theme="ext-cinema-vintage"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle 1px at 8% 12%, rgba(255, 255, 255, 0.18) 0%, transparent 100%),
        radial-gradient(circle 1px at 22% 28%, rgba(255, 255, 255, 0.12) 0%, transparent 100%),
        radial-gradient(circle 1px at 38% 8%, rgba(255, 255, 255, 0.15) 0%, transparent 100%),
        radial-gradient(circle 1px at 55% 22%, rgba(255, 255, 255, 0.10) 0%, transparent 100%),
        radial-gradient(circle 1px at 72% 35%, rgba(255, 255, 255, 0.13) 0%, transparent 100%),
        radial-gradient(circle 1px at 88% 14%, rgba(255, 255, 255, 0.16) 0%, transparent 100%),
        radial-gradient(circle 1px at 12% 48%, rgba(255, 255, 255, 0.11) 0%, transparent 100%),
        radial-gradient(circle 1px at 32% 62%, rgba(255, 255, 255, 0.14) 0%, transparent 100%),
        radial-gradient(circle 1px at 52% 52%, rgba(255, 255, 255, 0.10) 0%, transparent 100%),
        radial-gradient(circle 1px at 75% 68%, rgba(255, 255, 255, 0.13) 0%, transparent 100%),
        radial-gradient(circle 1px at 92% 55%, rgba(255, 255, 255, 0.12) 0%, transparent 100%),
        radial-gradient(circle 1px at 18% 78%, rgba(255, 255, 255, 0.15) 0%, transparent 100%),
        radial-gradient(circle 1px at 42% 88%, rgba(255, 255, 255, 0.11) 0%, transparent 100%),
        radial-gradient(circle 1px at 62% 82%, rgba(255, 255, 255, 0.13) 0%, transparent 100%),
        radial-gradient(circle 1px at 82% 92%, rgba(255, 255, 255, 0.14) 0%, transparent 100%),
        radial-gradient(circle 1px at 5% 35%, rgba(255, 255, 255, 0.10) 0%, transparent 100%),
        radial-gradient(circle 1px at 65% 5%, rgba(255, 255, 255, 0.12) 0%, transparent 100%),
        radial-gradient(circle 1px at 35% 42%, rgba(255, 255, 255, 0.09) 0%, transparent 100%);
    animation: cinemaVintageDust 5s linear infinite;
}
[data-theme="ext-cinema-vintage"] body {
    filter: contrast(0.9) brightness(1.05);
    animation: cinemaVintageFlicker 0.12s steps(1) infinite;
}
@keyframes cinemaVintageDust {
    0%   { opacity: 0.35; transform: translate(0, 0); }
    50%  { opacity: 0.5; transform: translate(2px, -1px); }
    100% { opacity: 0.35; transform: translate(0, 0); }
}
@keyframes cinemaVintageFlicker {
    0%   { opacity: 1; }
    25%  { opacity: 0.97; }
    50%  { opacity: 1; }
    75%  { opacity: 0.98; }
    100% { opacity: 1; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-vintage { background: linear-gradient(135deg, #100e08 0%, #ca8a04 100%); }


========================================================================
/* THEME: ext-cinema-epic
 *   Epic Film (史诗大片)
 *   Effect: see below
======================================================================== */

/* Variables: Epic Film (史诗大片) */
[data-theme="ext-cinema-epic"] {
    --bg: #0c0808;
    --bg-2: #160e0e;
    --bg-3: #201414;
    --bg-4: #2a1c1a;
    --text: #f5e8d0;
    --text-dim: #807060;
    --text-mid: #b0a088;
    --accent: #f59e0b;
    --accent-glow: rgba(245, 158, 11, 0.3);
    --white: #ffffff;
    --border: rgba(245, 158, 11, 0.15);
    --hero-overlay-color: rgba(12, 8, 8, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(12,8,8,0.3) 0%, rgba(12,8,8,0.7) 100%);
    --nav-scrolled-bg: rgba(12, 8, 8, 0.85);
    --font-display: "Cinzel", serif;
    --font-body: "Raleway", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-epic"][data-color="epic"] { --accent: #f59e0b; --accent-glow: rgba(245, 158, 11, 0.3); }
[data-theme="ext-cinema-epic"][data-color="golden"] { --accent: #fbbf24; --accent-glow: rgba(251, 191, 36, 0.3); }

/* Component styles (ext-cinema-epic) */

/* Cursor reset + body */
[data-theme="ext-cinema-epic"] body,
[data-theme="ext-cinema-epic"] a,
[data-theme="ext-cinema-epic"] button {
    cursor:none;
}
[data-theme="ext-cinema-epic"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-epic"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-epic"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-epic"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-epic"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-epic"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-epic"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-epic"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-epic"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-epic"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-epic"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-epic"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-epic"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-epic"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-epic"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-epic"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-epic"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 8px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-epic"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-epic"] .album-item {
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-epic"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-epic"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-epic"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-epic"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-epic"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-epic"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-epic"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-epic"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-epic"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-epic"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-epic"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-epic"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-epic"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-epic"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-epic"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-epic"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-epic"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-epic"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-epic"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-epic"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-epic) */

/* --- Unique Effect: Golden Hour Lens Flare --- */
/* Radial-gradients create a bright lens flare from the top-right corner,
   with a conic-gradient adding light rays and aperture artifacts.  Slow
   rotation and scale simulate the sweeping golden-hour cinematic flare. */
[data-theme="ext-cinema-epic"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        /* Outer flare glow */
        radial-gradient(circle 220px at 88% 12%, rgba(255, 235, 180, 0.16) 0%, transparent 60%),
        /* Mid flare */
        radial-gradient(circle 130px at 88% 12%, rgba(255, 220, 150, 0.22) 0%, transparent 50%),
        /* Core flare */
        radial-gradient(circle 70px at 88% 12%, rgba(255, 250, 230, 0.28) 0%, transparent 45%),
        /* Aperture artifact rings along the flare axis */
        radial-gradient(circle 20px at 72% 28%, rgba(255, 240, 200, 0.10) 0%, transparent 70%),
        radial-gradient(circle 14px at 58% 42%, rgba(255, 230, 180, 0.08) 0%, transparent 70%),
        radial-gradient(circle 10px at 45% 55%, rgba(255, 220, 160, 0.07) 0%, transparent 70%),
        /* Light rays via conic-gradient */
        conic-gradient(from 210deg at 88% 12%,
            transparent 0deg,
            rgba(255, 235, 180, 0.06) 8deg,
            transparent 16deg,
            rgba(255, 220, 150, 0.05) 24deg,
            transparent 32deg,
            rgba(255, 235, 180, 0.04) 40deg,
            transparent 48deg,
            rgba(255, 220, 150, 0.03) 56deg,
            transparent 64deg),
        /* Overall warm wash */
        linear-gradient(225deg, rgba(255, 200, 100, 0.06) 0%, transparent 35%);
    animation: cinemaEpicFlare 14s ease-in-out infinite;
}
@keyframes cinemaEpicFlare {
    0%, 100% { opacity: 0.6; transform: rotate(0deg) scale(1); }
    50%      { opacity: 0.85; transform: rotate(4deg) scale(1.03); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-epic { background: linear-gradient(135deg, #0c0808 0%, #f59e0b 100%); }


========================================================================
/* THEME: ext-cinema-indie
 *   Indie Film (独立电影)
 *   Effect: see below
======================================================================== */

/* Variables: Indie Film (独立电影) */
[data-theme="ext-cinema-indie"] {
    --bg: #0a1014;
    --bg-2: #101820;
    --bg-3: #161e28;
    --bg-4: #1c2630;
    --text: #d8e0e0;
    --text-dim: #687888;
    --text-mid: #98a8a8;
    --accent: #5eead4;
    --accent-glow: rgba(94, 234, 212, 0.3);
    --white: #ffffff;
    --border: rgba(94, 234, 212, 0.15);
    --hero-overlay-color: rgba(10, 16, 20, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,16,20,0.3) 0%, rgba(10,16,20,0.7) 100%);
    --nav-scrolled-bg: rgba(10, 16, 20, 0.85);
    --font-display: "Bebas Neue", sans-serif;
    --font-body: "Work Sans", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-indie"][data-color="indie"] { --accent: #5eead4; --accent-glow: rgba(94, 234, 212, 0.3); }
[data-theme="ext-cinema-indie"][data-color="handcrafted"] { --accent: #94a3b8; --accent-glow: rgba(148, 163, 184, 0.3); }

/* Component styles (ext-cinema-indie) */

/* Cursor reset + body */
[data-theme="ext-cinema-indie"] body,
[data-theme="ext-cinema-indie"] a,
[data-theme="ext-cinema-indie"] button {
    cursor:none;
}
[data-theme="ext-cinema-indie"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-indie"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-indie"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-indie"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-indie"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-indie"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-indie"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-indie"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-indie"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-indie"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-indie"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-indie"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-indie"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-indie"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-indie"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-indie"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-indie"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 6px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-indie"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-indie"] .album-item {
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-indie"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-indie"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-indie"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-indie"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-indie"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-indie"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 6px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-indie"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-indie"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 6px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-indie"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-indie"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-indie"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-indie"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-indie"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-indie"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-indie"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-indie"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-indie"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-indie"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-indie"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 6px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-indie"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-indie) */

/* --- Unique Effect: Handheld Camera Shake --- */
/* body::before: a subtle radial vignette.  Body has a very small transform
   shake (1px jitter) simulating handheld camera work.  Slight desaturation
   gives the muted indie-film look. */
[data-theme="ext-cinema-indie"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at center,
        transparent 35%,
        rgba(0, 0, 0, 0.28) 100%);
}
[data-theme="ext-cinema-indie"] body {
    filter: saturate(0.85);
    animation: cinemaIndieShake 2.5s ease-in-out infinite;
}
@keyframes cinemaIndieShake {
    0%   { transform: translate(0, 0); }
    10%  { transform: translate(1px, -1px); }
    20%  { transform: translate(-1px, 1px); }
    30%  { transform: translate(1px, 1px); }
    40%  { transform: translate(-1px, -1px); }
    50%  { transform: translate(1px, 0); }
    60%  { transform: translate(0, 1px); }
    70%  { transform: translate(-1px, 0); }
    80%  { transform: translate(0, -1px); }
    90%  { transform: translate(1px, -1px); }
    100% { transform: translate(0, 0); }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-indie { background: linear-gradient(135deg, #0a1014 0%, #5eead4 100%); }


========================================================================
/* THEME: ext-cinema-thriller
 *   Thriller Film (悬疑惊慌)
 *   Effect: see below
======================================================================== */

/* Variables: Thriller Film (悬疑惊慌) */
[data-theme="ext-cinema-thriller"] {
    --bg: #060608;
    --bg-2: #0a0a0e;
    --bg-3: #101014;
    --bg-4: #16161c;
    --text: #c8c8d0;
    --text-dim: #585868;
    --text-mid: #888898;
    --accent: #dc2626;
    --accent-glow: rgba(220, 38, 38, 0.3);
    --white: #ffffff;
    --border: rgba(220, 38, 38, 0.15);
    --hero-overlay-color: rgba(6, 6, 8, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(6,6,8,0.3) 0%, rgba(6,6,8,0.8) 100%);
    --nav-scrolled-bg: rgba(6, 6, 8, 0.9);
    --font-display: "Libre Baskerville", serif;
    --font-body: "Inter", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-thriller"][data-color="thriller"] { --accent: #dc2626; --accent-glow: rgba(220, 38, 38, 0.3); }
[data-theme="ext-cinema-thriller"][data-color="tension"] { --accent: #991b1b; --accent-glow: rgba(153, 27, 27, 0.3); }

/* Component styles (ext-cinema-thriller) */

/* Cursor reset + body */
[data-theme="ext-cinema-thriller"] body,
[data-theme="ext-cinema-thriller"] a,
[data-theme="ext-cinema-thriller"] button {
    cursor:none;
}
[data-theme="ext-cinema-thriller"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-thriller"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-thriller"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-thriller"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-thriller"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-thriller"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-thriller"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-thriller"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-thriller"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 2px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-thriller"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-thriller"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-thriller"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-thriller"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-thriller"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-thriller"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-thriller"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-thriller"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 2px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-thriller"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-thriller"] .album-item {
    border-radius: 2px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-thriller"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-thriller"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-thriller"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-thriller"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-thriller"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-thriller"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 2px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-thriller"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-thriller"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 2px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-thriller"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-thriller"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 2px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-thriller"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-thriller"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-thriller"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-thriller"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-thriller"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-thriller"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-thriller"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-thriller"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-thriller"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 2px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-thriller"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-thriller) */

/* --- Unique Effect: Heavy Vignette + Desaturation --- */
/* A strong radial vignette darkens the edges dramatically while the center
   stays slightly visible.  Heavy desaturation and increased contrast create
   the tense, unsettling atmosphere of a thriller film. */
[data-theme="ext-cinema-thriller"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at center,
        transparent 8%,
        rgba(0, 0, 0, 0.35) 55%,
        rgba(0, 0, 0, 0.7) 100%);
    animation: cinemaThrillerPulse 7s ease-in-out infinite;
}
[data-theme="ext-cinema-thriller"] body {
    filter: saturate(0.4) contrast(1.1);
}
@keyframes cinemaThrillerPulse {
    0%, 100% { opacity: 0.65; }
    50%      { opacity: 0.9; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-thriller { background: linear-gradient(135deg, #060608 0%, #dc2626 100%); }


========================================================================
/* THEME: ext-cinema-anime
 *   Anime Film (动画风格)
 *   Effect: see below
======================================================================== */

/* Variables: Anime Film (动画风格) */
[data-theme="ext-cinema-anime"] {
    --bg: #0a0814;
    --bg-2: #120e1e;
    --bg-3: #1a1428;
    --bg-4: #221a34;
    --text: #e8e0f0;
    --text-dim: #787088;
    --text-mid: #a898b8;
    --accent: #a78bfa;
    --accent-glow: rgba(167, 139, 250, 0.3);
    --white: #ffffff;
    --border: rgba(167, 139, 250, 0.15);
    --hero-overlay-color: rgba(10, 8, 20, 0.5);
    --hero-overlay-gradient: linear-gradient(180deg, rgba(10,8,20,0.3) 0%, rgba(10,8,20,0.7) 100%);
    --nav-scrolled-bg: rgba(10, 8, 20, 0.85);
    --font-display: "Russo One", sans-serif;
    --font-body: "Noto Sans", sans-serif;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg);
    color: var(--text);
}

/* Color variants */
[data-theme="ext-cinema-anime"][data-color="anime"] { --accent: #a78bfa; --accent-glow: rgba(167, 139, 250, 0.3); }
[data-theme="ext-cinema-anime"][data-color="manga"] { --accent: #ec4899; --accent-glow: rgba(236, 72, 153, 0.3); }

/* Component styles (ext-cinema-anime) */

/* Cursor reset + body */
[data-theme="ext-cinema-anime"] body,
[data-theme="ext-cinema-anime"] a,
[data-theme="ext-cinema-anime"] button {
    cursor:none;
}
[data-theme="ext-cinema-anime"] body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    transition: var(--transition);
    overflow-x: hidden;
}

/* Navbar */
[data-theme="ext-cinema-anime"] .navbar {
    background: var(--nav-scrolled-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    transition: var(--transition);

}

/* Nav link */
[data-theme="ext-cinema-anime"] .nav-link {
    color: var(--text-dim);
    font-family: var(--font-body);
    transition: var(--transition);
    position: relative;

}
[data-theme="ext-cinema-anime"] .nav-link:hover {
    color: var(--accent);
}

/* Preloader */
[data-theme="ext-cinema-anime"] .preloader {
    background: var(--bg);
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;

}
[data-theme="ext-cinema-anime"] .preloader .spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

/* Hero */
[data-theme="ext-cinema-anime"] .hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;

}
[data-theme="ext-cinema-anime"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay-gradient);
    background-color: var(--hero-overlay-color);
    z-index: 1;
}

/* Hero tag */
[data-theme="ext-cinema-anime"] .hero-tag {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    z-index: 2;
    position: relative;

}

/* Hero title */
[data-theme="ext-cinema-anime"] .hero-title {
    font-family: var(--font-display);
    color: var(--text);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
    line-height: 1.1;
    z-index: 2;
    position: relative;


}

/* Hero tagline */
[data-theme="ext-cinema-anime"] .hero-tagline {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 600px;
    z-index: 2;
    position: relative;

}

/* Section number */
[data-theme="ext-cinema-anime"] .section-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 0.9rem;
    letter-spacing: 0.1em;

}

/* Section title */
[data-theme="ext-cinema-anime"] .section-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);


}

/* About name */
[data-theme="ext-cinema-anime"] .about-name {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* About role */
[data-theme="ext-cinema-anime"] .about-role {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 1.1rem;
    letter-spacing: 0.03em;

}

/* About bio */
[data-theme="ext-cinema-anime"] .about-bio {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.7;

}

/* Skill bar fill */
[data-theme="ext-cinema-anime"] .skill-bar-fill {
    background: var(--accent);
    border-radius: 8px;
    height: 100%;
    transition: width 1s ease;
    box-shadow: 0 0 12px var(--accent-glow);

}

/* Stat number */
[data-theme="ext-cinema-anime"] .stat-num {
    color: var(--accent);
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;

}

/* Album item */
[data-theme="ext-cinema-anime"] .album-item {
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: var(--transition);
    border: 1px solid var(--border);

}

/* Album item hover */
[data-theme="ext-cinema-anime"] .album-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px var(--accent-glow);
    border-color: var(--accent);
}

/* Album info title */
[data-theme="ext-cinema-anime"] .album-info-title {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;

}

/* Album info meta */
[data-theme="ext-cinema-anime"] .album-info-meta {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;

}

/* Section head kicker */
[data-theme="ext-cinema-anime"] .section-head .kicker {
    color: var(--accent);
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* Section head h2 */
[data-theme="ext-cinema-anime"] .section-head h2 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
}

/* Button primary */
[data-theme="ext-cinema-anime"] .btn.primary {
    background: var(--accent);
    color: var(--bg);
    border: none;
    padding: 12px 32px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 20px var(--accent-glow);
}
[data-theme="ext-cinema-anime"] .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px var(--accent-glow);
}

/* Button ghost */
[data-theme="ext-cinema-anime"] .btn.ghost {
    background: transparent;
    color: var(--accent);
    border: 1px solid var(--accent);
    padding: 12px 32px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
[data-theme="ext-cinema-anime"] .btn.ghost:hover {
    background: var(--accent);
    color: var(--bg);
}

/* Contact card */
[data-theme="ext-cinema-anime"] .contact-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 24px;
    transition: var(--transition);

}
[data-theme="ext-cinema-anime"] .contact-card:hover {
    border-color: var(--accent);
    box-shadow: 0 8px 32px var(--accent-glow);
}

/* Card icon */
[data-theme="ext-cinema-anime"] .card-icon {
    color: var(--accent);
    font-size: 1.5rem;

}

/* Card label */
[data-theme="ext-cinema-anime"] .card-label {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;

}

/* Card value */
[data-theme="ext-cinema-anime"] .card-value {
    color: var(--text);
    font-family: var(--font-body);
    font-size: 1rem;

}

/* Footer */
[data-theme="ext-cinema-anime"] .footer {
    background: var(--bg);
    border-top: 1px solid var(--border);
    padding: 40px 0;

}

/* Footer logo */
[data-theme="ext-cinema-anime"] .footer-logo {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;

}

/* Footer links */
[data-theme="ext-cinema-anime"] .footer-links a {
    color: var(--text-dim);
    font-family: var(--font-body);
    font-size: 0.9rem;
    transition: var(--transition);
}
[data-theme="ext-cinema-anime"] .footer-links a:hover {
    color: var(--accent);
}

/* Social icon */
[data-theme="ext-cinema-anime"] .social-icon {
    color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    cursor: pointer;

}
[data-theme="ext-cinema-anime"] .social-icon:hover {
    color: var(--accent);
    border-color: var(--accent);
    box-shadow: 0 0 16px var(--accent-glow);
}


/* Unique creative effect (ext-cinema-anime) */

/* --- Unique Effect: Manga Speed Lines --- */
/* A repeating-conic-gradient creates thin radiating lines from center,
   masked with a radial gradient so they fade toward the edges.  Scale and
   rotate animation produces the dynamic motion effect of manga speed lines. */
[data-theme="ext-cinema-anime"] body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        repeating-conic-gradient(from 0deg at 50% 50%,
            rgba(255, 255, 255, 0.07) 0deg,
            rgba(255, 255, 255, 0.07) 0.3deg,
            transparent 0.3deg,
            transparent 4deg);
    -webkit-mask-image: radial-gradient(circle at center, black 8%, transparent 75%);
    mask-image: radial-gradient(circle at center, black 8%, transparent 75%);
    animation: cinemaAnimeSpeed 3s linear infinite;
}
@keyframes cinemaAnimeSpeed {
    0%   { transform: scale(1) rotate(0deg); opacity: 0.6; }
    50%  { opacity: 0.35; }
    100% { transform: scale(1.4) rotate(6deg); opacity: 0.6; }
}


/* Swatch */
.ts-swatch.ts-ap-ext-cinema-anime { background: linear-gradient(135deg, #0a0814 0%, #a78bfa 100%); }

/*
 *  themes_part3.css -- aphoto.cc Theme CSS (Part 3)
 *  Generated by gen_part3.py
 *
 *  13 Themes: 8 Polaroid + 5 Split-Screen
 *  Each theme has a genuinely unique creative visual effect.
 *
 *  Selectors: [data-theme="ext-..."]  (NO "ap-" prefix)
 *  Swatches:  .ts-swatch.ts-ap-ext-THEMEKEY
 */
/* ============================================================================ */

/* ==================================================================== */
/*  THEME: Classic Polaroid (经典宝丽来)  [ext-polaroid-classic]  */
/* ==================================================================== */

[data-theme="ext-polaroid-classic"] {
  --bg: #1a1a1a;
  --bg-2: #1f1f1f;
  --bg-3: #252525;
  --bg-4: #2a2a2a;
  --text: #e8e8e8;
  --text-dim: #888888;
  --text-mid: #aaaaaa;
  --accent: #ec4899;
  --accent-glow: rgba(236, 72, 153, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(26, 26, 26, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(26,26,26,0.4) 0%, rgba(26,26,26,0.9) 100%);
  --nav-scrolled-bg: rgba(26, 26, 26, 0.95);
  --font-display: "Caveat", cursive;
  --font-body: "Patrick Hand", cursive;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-classic"][data-color="classic"] {
  --accent: #ec4899;
  --accent-glow: rgba(236, 72, 153, 0.4);
}

[data-theme="ext-polaroid-classic"][data-color="vintage"] {
  --accent: #f59e0b;
  --accent-glow: rgba(245, 158, 11, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-classic"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-classic]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-classic"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-classic"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-classic"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-classic"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-classic"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-classic"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-classic"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-classic"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-classic"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-classic"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-classic"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-classic"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-classic"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-classic"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-classic"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-classic"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-classic"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-classic"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-classic"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-classic"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-classic"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-classic"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-classic"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-classic"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-classic"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-classic"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-classic"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-classic"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-classic"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-classic"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-classic"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Classic Polaroid Frame with Timestamp
   White polaroid frame, CSS-generated date text, alternating tilt
   ================================================================ */
[data-theme="ext-polaroid-classic"] .album-item {
  background: #fff !important;
  padding: 12px 12px 50px !important;
  border: none !important;
  border-radius: 2px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.35),
              0 2px 6px rgba(0,0,0,0.2) !important;
  position: relative;

}
[data-theme="ext-polaroid-classic"] .album-item:nth-child(odd) {
  transform: rotate(-2deg);
}
[data-theme="ext-polaroid-classic"] .album-item:nth-child(even) {
  transform: rotate(2deg);
}
[data-theme="ext-polaroid-classic"] .album-item:nth-child(3n) {
  transform: rotate(-1deg);
}
[data-theme="ext-polaroid-classic"] .album-item:hover {
  transform: rotate(0deg) translateY(-6px) scale(1.03) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,0.5) !important;
  z-index: 10;
}
[data-theme="ext-polaroid-classic"] .album-item::after {
  content: "\2014\00a003.24.2024\00a0\2014";
  position: absolute;
  bottom: 14px;
  left: 0;
  right: 0;
  text-align: center;
  color: #888;
  font-family: 'Quicksand', sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-classic{background:#ec4899;}


/* ==================================================================== */
/*  THEME: Spectrum Polaroid (光谱宝丽来)  [ext-polaroid-spectrum]  */
/* ==================================================================== */

[data-theme="ext-polaroid-spectrum"] {
  --bg: #1a1a1e;
  --bg-2: #1f1f24;
  --bg-3: #25252c;
  --bg-4: #2a2a32;
  --text: #e8e8f0;
  --text-dim: #8888a0;
  --text-mid: #aaaab8;
  --accent: #a855f7;
  --accent-glow: rgba(168, 85, 247, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(26, 26, 30, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(26,26,30,0.4) 0%, rgba(26,26,30,0.9) 100%);
  --nav-scrolled-bg: rgba(26, 26, 30, 0.95);
  --font-display: "Luckiest Guy", cursive;
  --font-body: "Quicksand", sans-serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-spectrum"][data-color="spectrum"] {
  --accent: #a855f7;
  --accent-glow: rgba(168, 85, 247, 0.4);
}

[data-theme="ext-polaroid-spectrum"][data-color="prism"] {
  --accent: #22d3ee;
  --accent-glow: rgba(34, 211, 238, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-spectrum"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-spectrum]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-spectrum"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-spectrum"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-spectrum"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-spectrum"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-spectrum"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-spectrum"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-spectrum"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-spectrum"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-spectrum"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-spectrum"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-spectrum"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-spectrum"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-spectrum"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-spectrum"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-spectrum"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-spectrum"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-spectrum"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-spectrum"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-spectrum"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-spectrum"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-spectrum"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-spectrum"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-spectrum"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-spectrum"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-spectrum"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-spectrum"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-spectrum"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-spectrum"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-spectrum"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-spectrum"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-spectrum"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Spectrum Polaroid with Rainbow Top Border
   6px rainbow strip atop white polaroid body, rounded corners
   ================================================================ */
[data-theme="ext-polaroid-spectrum"] .album-item {
  background: #fff !important;
  padding: 18px 18px 45px !important;
  border: none !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 22px rgba(0,0,0,0.32) !important;
  position: relative;
  overflow: hidden;

}
[data-theme="ext-polaroid-spectrum"] .album-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg,
    #ff0040 0%,
    #ff7f00 16%,
    #ffeb00 33%,
    #00d947 50%,
    #00a3ff 66%,
    #4b0082 83%,
    #9400d3 100%);
  border-radius: 8px 8px 0 0;
}
[data-theme="ext-polaroid-spectrum"] .album-item:hover {
  transform: translateY(-6px) scale(1.02) !important;
  box-shadow: 0 12px 40px rgba(168,85,247,0.25),
              0 4px 12px rgba(0,0,0,0.3) !important;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-spectrum{background:#a855f7;}


/* ==================================================================== */
/*  THEME: Faded Polaroid (褰色宝丽来)  [ext-polaroid-fade]  */
/* ==================================================================== */

[data-theme="ext-polaroid-fade"] {
  --bg: #18140e;
  --bg-2: #1e1a12;
  --bg-3: #242018;
  --bg-4: #2a261e;
  --text: #e0d4c0;
  --text-dim: #8a7e6a;
  --text-mid: #aa9e88;
  --accent: #d4a544;
  --accent-glow: rgba(212, 165, 68, 0.4);
  --white: #f5f0e0;
  --border: rgba(224, 212, 192, 0.1);
  --hero-overlay-color: rgba(24, 20, 14, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(24,20,14,0.4) 0%, rgba(24,20,14,0.9) 100%);
  --nav-scrolled-bg: rgba(24, 20, 14, 0.95);
  --font-display: "Shadows Into Light", cursive;
  --font-body: "Indie Flower", cursive;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-fade"][data-color="fade"] {
  --accent: #d4a544;
  --accent-glow: rgba(212, 165, 68, 0.4);
}

[data-theme="ext-polaroid-fade"][data-color="sepia"] {
  --accent: #a0804a;
  --accent-glow: rgba(160, 128, 74, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-fade"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-fade]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-fade"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-fade"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-fade"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-fade"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-fade"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-fade"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-fade"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-fade"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-fade"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-fade"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-fade"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-fade"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-fade"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-fade"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-fade"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-fade"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-fade"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-fade"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-fade"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-fade"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-fade"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-fade"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-fade"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-fade"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-fade"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-fade"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-fade"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-fade"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-fade"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-fade"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-fade"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Faded Sepia Polaroid with Worn Edges
   sepia/brightness filter, yellowed #f5f0e0 frame, irregular shadow
   ================================================================ */
[data-theme="ext-polaroid-fade"] .album-item {
  background: #f5f0e0 !important;
  padding: 12px 12px 45px !important;
  border: none !important;
  border-radius: 2px !important;
  filter: sepia(0.4) brightness(0.9) !important;
  box-shadow:
    0 2px 8px rgba(0,0,0,0.2),
    3px 4px 6px rgba(0,0,0,0.12),
    -2px 1px 5px rgba(0,0,0,0.1),
    1px -1px 3px rgba(0,0,0,0.08),
    0 4px 14px rgba(0,0,0,0.22) !important;
  position: relative;

}
[data-theme="ext-polaroid-fade"] .album-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 20%,
    rgba(255,255,255,0.15) 0%, transparent 60%);
  pointer-events: none;
}
[data-theme="ext-polaroid-fade"] .album-item:hover {
  filter: sepia(0.3) brightness(0.95) !important;
  transform: translateY(-3px) !important;
  box-shadow:
    0 6px 18px rgba(0,0,0,0.28),
    3px 4px 8px rgba(0,0,0,0.15) !important;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-fade{background:#d4a544;}


/* ==================================================================== */
/*  THEME: Mini Polaroid (迷你宝丽来)  [ext-polaroid-mini]  */
/* ==================================================================== */

[data-theme="ext-polaroid-mini"] {
  --bg: #161616;
  --bg-2: #1c1c1c;
  --bg-3: #222222;
  --bg-4: #282828;
  --text: #e8e8e8;
  --text-dim: #888888;
  --text-mid: #aaaaaa;
  --accent: #ec4899;
  --accent-glow: rgba(236, 72, 153, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(22, 22, 22, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(22,22,22,0.4) 0%, rgba(22,22,22,0.9) 100%);
  --nav-scrolled-bg: rgba(22, 22, 22, 0.95);
  --font-display: "Gloria Hallelujah", cursive;
  --font-body: "Comfortaa", sans-serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-mini"][data-color="mini"] {
  --accent: #ec4899;
  --accent-glow: rgba(236, 72, 153, 0.4);
}

[data-theme="ext-polaroid-mini"][data-color="pastel"] {
  --accent: #f0a0c0;
  --accent-glow: rgba(240, 160, 192, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-mini"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-mini]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-mini"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-mini"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-mini"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-mini"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-mini"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-mini"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-mini"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-mini"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-mini"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-mini"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-mini"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-mini"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-mini"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-mini"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-mini"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-mini"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-mini"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-mini"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-mini"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-mini"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-mini"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-mini"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-mini"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-mini"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-mini"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-mini"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-mini"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-mini"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-mini"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-mini"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-mini"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Mini Polaroid with Washi Tape
   Reduced padding/font scale, semi-transparent washi tape strip
   ================================================================ */
[data-theme="ext-polaroid-mini"] .album-item {
  background: #fff !important;
  padding: 8px 8px 30px !important;
  border: none !important;
  border-radius: 2px !important;
  box-shadow: 0 3px 14px rgba(0,0,0,0.3) !important;
  position: relative;
  transform: scale(0.88);
  font-size: 0.85em;

}
[data-theme="ext-polaroid-mini"] .album-item::before {
  content: "";
  position: absolute;
  top: -7px;
  left: 50%;
  transform: translateX(-50%) rotate(-9deg);
  width: 52px;
  height: 18px;
  background: rgba(236, 72, 153, 0.45);
  border: 1px solid rgba(236, 72, 153, 0.15);
  border-radius: 1px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.12);
  background-image: repeating-linear-gradient(
    45deg, transparent, transparent 4px,
    rgba(255,255,255,0.15) 4px, rgba(255,255,255,0.15) 8px);
}
[data-theme="ext-polaroid-mini"] .album-item:hover {
  transform: scale(0.92) translateY(-4px) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.38) !important;
  z-index: 10;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-mini{background:#ec4899;}


/* ==================================================================== */
/*  THEME: Tape Polaroid (胶带宝丽来)  [ext-polaroid-tape]  */
/* ==================================================================== */

[data-theme="ext-polaroid-tape"] {
  --bg: #1a1612;
  --bg-2: #211c16;
  --bg-3: #27221c;
  --bg-4: #2d2820;
  --text: #e8e0d8;
  --text-dim: #8a8074;
  --text-mid: #aa9e90;
  --accent: #f59e0b;
  --accent-glow: rgba(245, 158, 11, 0.4);
  --white: #fff8ee;
  --border: rgba(232, 224, 216, 0.08);
  --hero-overlay-color: rgba(26, 22, 18, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(26,22,18,0.4) 0%, rgba(26,22,18,0.9) 100%);
  --nav-scrolled-bg: rgba(26, 22, 18, 0.95);
  --font-display: "Architects Daughter", cursive;
  --font-body: "Nunito", sans-serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-tape"][data-color="tape"] {
  --accent: #f59e0b;
  --accent-glow: rgba(245, 158, 11, 0.4);
}

[data-theme="ext-polaroid-tape"][data-color="kraft"] {
  --accent: #d4a544;
  --accent-glow: rgba(212, 165, 68, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-tape"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-tape]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-tape"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-tape"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-tape"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-tape"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-tape"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-tape"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-tape"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-tape"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-tape"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-tape"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-tape"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-tape"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-tape"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-tape"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-tape"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-tape"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-tape"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-tape"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-tape"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-tape"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-tape"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-tape"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-tape"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-tape"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-tape"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-tape"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-tape"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-tape"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-tape"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-tape"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-tape"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Tape Polaroid with Multiple Tape Pieces
   ::before = top-left tape, ::after = bottom-right tape
   Both semi-transparent, rotated, with dashed rough edges
   ================================================================ */
[data-theme="ext-polaroid-tape"] .album-item {
  background: #fff8ee !important;
  padding: 14px 14px 45px !important;
  border: none !important;
  border-radius: 2px !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.3) !important;
  position: relative;

}
[data-theme="ext-polaroid-tape"] .album-item::before {
  content: "";
  position: absolute;
  top: -9px;
  left: -12px;
  width: 62px;
  height: 22px;
  background: rgba(245, 158, 11, 0.4);
  transform: rotate(-26deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
  border-left: 1px dashed rgba(0,0,0,0.08);
  border-right: 1px dashed rgba(0,0,0,0.08);
  background-image: repeating-linear-gradient(
    -45deg, transparent, transparent 5px,
    rgba(0,0,0,0.04) 5px, rgba(0,0,0,0.04) 10px);
}
[data-theme="ext-polaroid-tape"] .album-item::after {
  content: "";
  position: absolute;
  bottom: -7px;
  right: -12px;
  width: 56px;
  height: 20px;
  background: rgba(245, 158, 11, 0.34);
  transform: rotate(22deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.12);
  border-left: 1px dashed rgba(0,0,0,0.06);
  border-right: 1px dashed rgba(0,0,0,0.06);
  background-image: repeating-linear-gradient(
    45deg, transparent, transparent 5px,
    rgba(0,0,0,0.03) 5px, rgba(0,0,0,0.03) 10px);
}
[data-theme="ext-polaroid-tape"] .album-item:hover {
  transform: translateY(-5px) rotate(0deg) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,0.4) !important;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-tape{background:#f59e0b;}


/* ==================================================================== */
/*  THEME: Color Polaroid (彩色宝丽来)  [ext-polaroid-color]  */
/* ==================================================================== */

[data-theme="ext-polaroid-color"] {
  --bg: #181a20;
  --bg-2: #1e2028;
  --bg-3: #24262e;
  --bg-4: #2a2c34;
  --text: #e8e8f0;
  --text-dim: #8888a0;
  --text-mid: #aaaab8;
  --accent: #f472b6;
  --accent-glow: rgba(244, 114, 182, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(24, 26, 32, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(24,26,32,0.4) 0%, rgba(24,26,32,0.9) 100%);
  --nav-scrolled-bg: rgba(24, 26, 32, 0.95);
  --font-display: "Pacifico", cursive;
  --font-body: "Poppins", sans-serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-color"][data-color="pink"] {
  --accent: #f472b6;
  --accent-glow: rgba(244, 114, 182, 0.4);
}

[data-theme="ext-polaroid-color"][data-color="blue"] {
  --accent: #60a5fa;
  --accent-glow: rgba(96, 165, 250, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-color"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-color]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-color"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-color"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-color"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-color"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-color"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-color"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-color"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-color"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-color"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-color"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-color"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-color"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-color"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-color"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-color"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-color"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-color"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-color"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-color"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-color"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-color"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-color"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-color"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-color"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-color"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-color"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-color"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-color"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-color"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-color"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-color"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Color Polaroid with Saturated Gradient Border
   filter:saturate(1.4) contrast(1.1), gradient border via clip
   ================================================================ */
[data-theme="ext-polaroid-color"] .album-item {
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, #f472b6 0%, #c084fc 35%, #60a5fa 100%) border-box !important;
  padding: 14px 14px 45px !important;
  border: 4px solid transparent !important;
  border-radius: 6px !important;
  filter: saturate(1.4) contrast(1.1) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.35) !important;
  position: relative;

}
[data-theme="ext-polaroid-color"] .album-item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45px;
  background: linear-gradient(180deg, transparent, #fff);
  pointer-events: none;
  border-radius: 0 0 2px 2px;
}
[data-theme="ext-polaroid-color"] .album-item:hover {
  filter: saturate(1.6) contrast(1.15) !important;
  transform: translateY(-5px) scale(1.02) !important;
  box-shadow: 0 10px 36px rgba(244,114,182,0.3) !important;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-color{background:#f472b6;}


/* ==================================================================== */
/*  THEME: Vintage Polaroid (复古宝丽来)  [ext-polaroid-vintage]  */
/* ==================================================================== */

[data-theme="ext-polaroid-vintage"] {
  --bg: #18140e;
  --bg-2: #1e1a12;
  --bg-3: #242018;
  --bg-4: #2a261e;
  --text: #e0d8c0;
  --text-dim: #8a7e64;
  --text-mid: #aa9e84;
  --accent: #ca8a04;
  --accent-glow: rgba(202, 138, 4, 0.4);
  --white: #f0e8d0;
  --border: rgba(224, 216, 192, 0.1);
  --hero-overlay-color: rgba(24, 20, 14, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(24,20,14,0.4) 0%, rgba(24,20,14,0.9) 100%);
  --nav-scrolled-bg: rgba(24, 20, 14, 0.95);
  --font-display: "Homemade Apple", cursive;
  --font-body: "Lora", serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-vintage"][data-color="vintage"] {
  --accent: #ca8a04;
  --accent-glow: rgba(202, 138, 4, 0.4);
}

[data-theme="ext-polaroid-vintage"][data-color="old"] {
  --accent: #92740a;
  --accent-glow: rgba(146, 116, 10, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-vintage"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-vintage]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-vintage"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-vintage"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-vintage"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-vintage"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-vintage"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-vintage"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-vintage"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-vintage"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-vintage"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-vintage"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-vintage"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-vintage"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-vintage"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-vintage"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-vintage"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-vintage"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-vintage"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-vintage"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-vintage"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-vintage"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-vintage"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-vintage"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-vintage"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-vintage"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-vintage"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-vintage"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-vintage"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-vintage"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-vintage"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-vintage"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-vintage"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Vintage Polaroid with Torn Corners & Coffee Stains
   clip-path polygon for torn corners, radial-gradient stains
   ================================================================ */
[data-theme="ext-polaroid-vintage"] .album-item {
  background: #f0e8d0 !important;
  padding: 12px 12px 45px !important;
  border: none !important;
  border-radius: 0 !important;
  filter: sepia(0.25) contrast(0.95) brightness(0.96) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25) !important;
  position: relative;
  clip-path: polygon(
    0% 3%, 4% 0%, 96% 2%, 100% 4%,
    99% 96%, 100% 100%, 3% 99%, 0% 96%
  );

}
[data-theme="ext-polaroid-vintage"] .album-item::before {
  content: "";
  position: absolute;
  top: 8px;
  right: 8px;
  width: 34px;
  height: 34px;
  background: radial-gradient(circle,
    rgba(139,90,43,0.32) 0%, rgba(139,90,43,0.15) 40%, transparent 70%);
  border-radius: 50%;
  z-index: 2;
  pointer-events: none;
}
[data-theme="ext-polaroid-vintage"] .album-item::after {
  content: "";
  position: absolute;
  bottom: 28px;
  left: 12px;
  width: 24px;
  height: 24px;
  background: radial-gradient(circle,
    rgba(101,67,33,0.28) 0%, rgba(101,67,33,0.12) 45%, transparent 65%);
  border-radius: 50%;
  z-index: 2;
  pointer-events: none;
}
[data-theme="ext-polaroid-vintage"] .album-item:hover {
  filter: sepia(0.2) contrast(1) brightness(1) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3) !important;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-vintage{background:#ca8a04;}


/* ==================================================================== */
/*  THEME: Snow Polaroid (雪景宝丽来)  [ext-polaroid-snow]  */
/* ==================================================================== */

[data-theme="ext-polaroid-snow"] {
  --bg: #0e1418;
  --bg-2: #141c22;
  --bg-3: #1a242c;
  --bg-4: #202c34;
  --text: #e0e8f0;
  --text-dim: #7a8a98;
  --text-mid: #9aaabc;
  --accent: #7dd3fc;
  --accent-glow: rgba(125, 211, 252, 0.4);
  --white: #f0f8ff;
  --border: rgba(224, 232, 240, 0.1);
  --hero-overlay-color: rgba(14, 20, 24, 0.8);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(14,20,24,0.4) 0%, rgba(14,20,24,0.9) 100%);
  --nav-scrolled-bg: rgba(14, 20, 24, 0.95);
  --font-display: "Sniglet", cursive;
  --font-body: "Quicksand", sans-serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-polaroid-snow"][data-color="snow"] {
  --accent: #7dd3fc;
  --accent-glow: rgba(125, 211, 252, 0.4);
}

[data-theme="ext-polaroid-snow"][data-color="ice"] {
  --accent: #e0f2fe;
  --accent-glow: rgba(224, 242, 254, 0.5);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-polaroid-snow"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-polaroid-snow]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-polaroid-snow"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-polaroid-snow"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-polaroid-snow"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-snow"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-polaroid-snow"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-polaroid-snow"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-polaroid-snow"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-snow"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-polaroid-snow"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-polaroid-snow"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-polaroid-snow"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-polaroid-snow"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-polaroid-snow"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-snow"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-polaroid-snow"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-snow"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-polaroid-snow"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-polaroid-snow"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-snow"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-polaroid-snow"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-polaroid-snow"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-polaroid-snow"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-polaroid-snow"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-polaroid-snow"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-polaroid-snow"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-polaroid-snow"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-polaroid-snow"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-polaroid-snow"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-polaroid-snow"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-polaroid-snow"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-polaroid-snow"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Frosty Snow Polaroid
   Crystalline radial-gradient frost overlay, snowflake dots,
   cool blue tint on white frame
   ================================================================ */
[data-theme="ext-polaroid-snow"] .album-item {
  background: #fff !important;
  padding: 12px 12px 45px !important;
  border: none !important;
  border-radius: 3px !important;
  box-shadow: 0 4px 20px rgba(125,211,252,0.22),
              0 2px 8px rgba(0,0,0,0.12) !important;
  position: relative;

}
[data-theme="ext-polaroid-snow"] .album-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(circle at 18% 25%, rgba(255,255,255,0.7) 1.5px, transparent 2.5px),
    radial-gradient(circle at 72% 55%, rgba(255,255,255,0.55) 1.5px, transparent 2.5px),
    radial-gradient(circle at 38% 78%, rgba(255,255,255,0.45) 1px, transparent 1.5px),
    radial-gradient(circle at 85% 22%, rgba(255,255,255,0.55) 1.5px, transparent 2.5px),
    radial-gradient(circle at 12% 68%, rgba(255,255,255,0.35) 1px, transparent 1.5px),
    radial-gradient(circle at 55% 12%, rgba(255,255,255,0.4) 1px, transparent 1.5px),
    radial-gradient(circle at 92% 82%, rgba(255,255,255,0.3) 1px, transparent 1.5px);
  pointer-events: none;
  z-index: 3;
}
[data-theme="ext-polaroid-snow"] .album-item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg,
    rgba(125,211,252,0.1) 0%,
    rgba(224,242,254,0.06) 50%,
    rgba(125,211,252,0.1) 100%);
  pointer-events: none;
  z-index: 2;
}
[data-theme="ext-polaroid-snow"] .album-item:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 10px 30px rgba(125,211,252,0.3),
              0 4px 12px rgba(0,0,0,0.15) !important;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-polaroid-snow{background:#7dd3fc;}


/* ==================================================================== */
/*  THEME: Duotone Split (双色分屏)  [ext-split-duotone]  */
/* ==================================================================== */

[data-theme="ext-split-duotone"] {
  --bg: #0a0a0e;
  --bg-2: #0e0e14;
  --bg-3: #14141c;
  --bg-4: #1a1a22;
  --text: #f0f0f4;
  --text-dim: #808088;
  --text-mid: #a0a0a8;
  --accent: #f59e0b;
  --accent-glow: rgba(245, 158, 11, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(10, 10, 14, 0.7);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(10,10,14,0.3) 0%, rgba(10,10,14,0.85) 100%);
  --nav-scrolled-bg: rgba(10, 10, 14, 0.95);
  --font-display: "Archivo Black", sans-serif;
  --font-body: "Inter", sans-serif;
  --transition: all 0.3s ease;
  --radius: 8px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-split-duotone"][data-color="warm"] {
  --accent: #f59e0b;
  --accent-glow: rgba(245, 158, 11, 0.4);
}

[data-theme="ext-split-duotone"][data-color="cool"] {
  --accent: #3b82f6;
  --accent-glow: rgba(59, 130, 246, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-split-duotone"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-split-duotone]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-split-duotone"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-split-duotone"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-split-duotone"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-duotone"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-split-duotone"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-split-duotone"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-split-duotone"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-split-duotone"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-split-duotone"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-split-duotone"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-duotone"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-split-duotone"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-split-duotone"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-split-duotone"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-duotone"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-split-duotone"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-duotone"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-split-duotone"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-split-duotone"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-duotone"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-split-duotone"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-duotone"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-split-duotone"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-duotone"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-split-duotone"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-duotone"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-split-duotone"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-split-duotone"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-split-duotone"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-split-duotone"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-split-duotone"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-split-duotone"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Duotone Split (Warm Left / Cool Right)
   body::before = warm/cool gradient halves + center divider
   .hero::before / .hero::after = clip-path warm/cool overlays
   ================================================================ */
[data-theme="ext-split-duotone"] body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    rgba(245,158,11,.12) 0%,
    rgba(245,158,11,.12) 50%,
    rgba(59,130,246,.12) 50%,
    rgba(59,130,246,.12) 100%);
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-duotone"] body::after {
  content: "";
  position: fixed;
  top: 0;
  left: 50%;
  width: 2px;
  height: 100%;
  background: linear-gradient(180deg,
    rgba(245,158,11,0.5),
    rgba(59,130,246,0.5));
  z-index: -2;
  pointer-events: none;
  transform: translateX(-50%);
}
[data-theme="ext-split-duotone"] .hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%);
  background: rgba(245,158,11,.15);
  z-index: 0;
  pointer-events: none;
}
[data-theme="ext-split-duotone"] .hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(50% 0, 100% 0, 100% 100%, 50% 100%);
  background: rgba(59,130,246,.15);
  z-index: 0;
  pointer-events: none;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-split-duotone{background:linear-gradient(90deg,#f59e0b 50%,#3b82f6 50%);}


/* ==================================================================== */
/*  THEME: Light Dark Split (明暗对比)  [ext-split-contrast]  */
/* ==================================================================== */

[data-theme="ext-split-contrast"] {
  --bg: #080808;
  --bg-2: #0c0c0c;
  --bg-3: #101010;
  --bg-4: #141414;
  --text: #e8e8e8;
  --text-dim: #787878;
  --text-mid: #989898;
  --accent: #ffffff;
  --accent-glow: rgba(255, 255, 255, 0.3);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.1);
  --hero-overlay-color: rgba(8, 8, 8, 0.6);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(8,8,8,0.2) 0%, rgba(8,8,8,0.8) 100%);
  --nav-scrolled-bg: rgba(8, 8, 8, 0.95);
  --font-display: "Yeseva One", serif;
  --font-body: "Josefin Sans", sans-serif;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-split-contrast"][data-color="dark"] {
  --accent: #ffffff;
  --accent-glow: rgba(255, 255, 255, 0.3);
}

[data-theme="ext-split-contrast"][data-color="light"] {
  --accent: #000000;
  --accent-glow: rgba(0, 0, 0, 0.3);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-split-contrast"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-split-contrast]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-split-contrast"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-split-contrast"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-split-contrast"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-contrast"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-split-contrast"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-split-contrast"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-split-contrast"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-split-contrast"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-split-contrast"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-split-contrast"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-contrast"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-split-contrast"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-split-contrast"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-split-contrast"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-contrast"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-split-contrast"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-contrast"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-split-contrast"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-split-contrast"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-contrast"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-split-contrast"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-contrast"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-split-contrast"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-contrast"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-split-contrast"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-contrast"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-split-contrast"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-split-contrast"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-split-contrast"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-split-contrast"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-split-contrast"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-split-contrast"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Light/Dark Horizontal Split
   body::before = hard 180deg dark(0-50%) / light(50-100%) split
   .hero::before = clip-path light bottom half overlay
   ================================================================ */
[data-theme="ext-split-contrast"] body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg,
    #080808 0%,
    #080808 50%,
    #e8e8e8 50%,
    #e8e8e8 100%);
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-contrast"] body::after {
  content: "";
  position: fixed;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: rgba(128,128,128,0.4);
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-contrast"] .hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
  background: #e8e8e8;
  z-index: 0;
  pointer-events: none;
}
[data-theme="ext-split-contrast"] .hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50%;
  background: #080808;
  z-index: 0;
  pointer-events: none;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-split-contrast{background:linear-gradient(180deg,#080808 50%,#e8e8e8 50%);}


/* ==================================================================== */
/*  THEME: Diagonal Split (对角分屏)  [ext-split-diagonal]  */
/* ==================================================================== */

[data-theme="ext-split-diagonal"] {
  --bg: #0a0e1a;
  --bg-2: #0e1424;
  --bg-3: #141a2e;
  --bg-4: #1a2038;
  --text: #e8e8f0;
  --text-dim: #808090;
  --text-mid: #a0a0b0;
  --accent: #a78bfa;
  --accent-glow: rgba(167, 139, 250, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(10, 14, 26, 0.7);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(10,14,26,0.3) 0%, rgba(10,14,26,0.85) 100%);
  --nav-scrolled-bg: rgba(10, 14, 26, 0.95);
  --font-display: "Big Shoulders Display", sans-serif;
  --font-body: "Barlow", sans-serif;
  --transition: all 0.3s ease;
  --radius: 8px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-split-diagonal"][data-color="purple"] {
  --accent: #a78bfa;
  --accent-glow: rgba(167, 139, 250, 0.4);
}

[data-theme="ext-split-diagonal"][data-color="teal"] {
  --accent: #22d3ee;
  --accent-glow: rgba(34, 211, 238, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-split-diagonal"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-split-diagonal]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-split-diagonal"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-split-diagonal"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-split-diagonal"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-diagonal"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-split-diagonal"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-split-diagonal"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-split-diagonal"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-split-diagonal"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-split-diagonal"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-split-diagonal"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-diagonal"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-split-diagonal"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-split-diagonal"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-diagonal"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-split-diagonal"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-diagonal"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-split-diagonal"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-split-diagonal"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-diagonal"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-split-diagonal"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-diagonal"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-split-diagonal"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-diagonal"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-split-diagonal"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-diagonal"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-split-diagonal"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-split-diagonal"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-split-diagonal"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-split-diagonal"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-split-diagonal"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-split-diagonal"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Diagonal Split (Purple Left / Teal Right)
   body::before = purple left triangle clip-path
   body::after  = teal right triangle clip-path
   Creates a VISIBLE diagonal color boundary
   ================================================================ */
[data-theme="ext-split-diagonal"] body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(0 0, 60% 0, 40% 100%, 0 100%);
  background: rgba(167,139,250,.15);
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-diagonal"] body::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(60% 0, 100% 0, 100% 100%, 40% 100%);
  background: rgba(34,211,238,.15);
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-diagonal"] .hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(0 0, 60% 0, 40% 100%, 0 100%);
  background: rgba(167,139,250,.2);
  z-index: 0;
  pointer-events: none;
}
[data-theme="ext-split-diagonal"] .hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: polygon(60% 0, 100% 0, 100% 100%, 40% 100%);
  background: rgba(34,211,238,.2);
  z-index: 0;
  pointer-events: none;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-split-diagonal{background:linear-gradient(135deg,#a78bfa 50%,#22d3ee 50%);}


/* ==================================================================== */
/*  THEME: Grid Split (网格分屏)  [ext-split-grid]  */
/* ==================================================================== */

[data-theme="ext-split-grid"] {
  --bg: #0c0c10;
  --bg-2: #101014;
  --bg-3: #141418;
  --bg-4: #181820;
  --text: #e0e0e4;
  --text-dim: #808088;
  --text-mid: #a0a0a8;
  --accent: #fbbf24;
  --accent-glow: rgba(251, 191, 36, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(12, 12, 16, 0.7);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(12,12,16,0.3) 0%, rgba(12,12,16,0.85) 100%);
  --nav-scrolled-bg: rgba(12, 12, 16, 0.95);
  --font-display: "Major Mono Display", monospace;
  --font-body: "IBM Plex Mono", monospace;
  --transition: all 0.3s ease;
  --radius: 4px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-split-grid"][data-color="grid"] {
  --accent: #fbbf24;
  --accent-glow: rgba(251, 191, 36, 0.4);
}

[data-theme="ext-split-grid"][data-color="mono"] {
  --accent: #9ca3af;
  --accent-glow: rgba(156, 163, 175, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-split-grid"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-split-grid]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-split-grid"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-split-grid"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-split-grid"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-grid"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-split-grid"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-split-grid"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-split-grid"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-split-grid"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-split-grid"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-split-grid"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-grid"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-split-grid"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-split-grid"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-split-grid"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-grid"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-split-grid"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-grid"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-split-grid"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-split-grid"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-split-grid"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-grid"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-split-grid"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-grid"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-split-grid"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-split-grid"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-grid"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-split-grid"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-grid"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-split-grid"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-split-grid"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-split-grid"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-split-grid"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-split-grid"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-split-grid"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: 4-Quadrant Grid Split
   body::before = 2x2 gradient grid with background-size:50% 50%
   body::after  = visible crosshair grid lines at center
   Quadrants: TL=amber, TR=teal, BL=purple, BR=pink
   ================================================================ */
[data-theme="ext-split-grid"] body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(90deg,
      rgba(251,191,36,.1) 50%,
      rgba(34,211,238,.1) 50%),
    linear-gradient(180deg,
      transparent 50%,
      rgba(167,139,250,.1) 50%);
  background-size: 50% 50%, 50% 50%;
  background-repeat: repeat, repeat;
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-grid"] body::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(rgba(255,255,255,0.18), rgba(255,255,255,0.18))
      center / 100% 1px no-repeat,
    linear-gradient(rgba(255,255,255,0.18), rgba(255,255,255,0.18))
      center / 1px 100% no-repeat;
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-grid"] .hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(90deg,
      rgba(251,191,36,.15) 50%,
      rgba(34,211,238,.15) 50%);
  background-size: 50% 50%;
  background-repeat: repeat-x;
  z-index: 0;
  pointer-events: none;
}
[data-theme="ext-split-grid"] .hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(180deg,
      transparent 50%,
      rgba(167,139,250,.15) 50%);
  background-size: 50% 50%;
  background-repeat: repeat;
  z-index: 0;
  pointer-events: none;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-split-grid{background:linear-gradient(90deg,#fbbf24 50%,#9ca3af 50%);}


/* ==================================================================== */
/*  THEME: Gradient Split (渐变分屏)  [ext-split-gradient]  */
/* ==================================================================== */

[data-theme="ext-split-gradient"] {
  --bg: #0a0a14;
  --bg-2: #0e0e1a;
  --bg-3: #14141e;
  --bg-4: #1a1a26;
  --text: #e8e8f0;
  --text-dim: #808094;
  --text-mid: #a0a0b4;
  --accent: #6366f1;
  --accent-glow: rgba(99, 102, 241, 0.4);
  --white: #ffffff;
  --border: rgba(255, 255, 255, 0.08);
  --hero-overlay-color: rgba(10, 10, 20, 0.7);
  --hero-overlay-gradient: linear-gradient(180deg, rgba(10,10,20,0.3) 0%, rgba(10,10,20,0.85) 100%);
  --nav-scrolled-bg: rgba(10, 10, 20, 0.95);
  --font-display: "Tomorrow", sans-serif;
  --font-body: "Chivo", sans-serif;
  --transition: all 0.3s ease;
  --radius: 8px;
  background: var(--bg);
  color: var(--text);
}

[data-theme="ext-split-gradient"][data-color="indigo"] {
  --accent: #6366f1;
  --accent-glow: rgba(99, 102, 241, 0.4);
}

[data-theme="ext-split-gradient"][data-color="pink"] {
  --accent: #ec4899;
  --accent-glow: rgba(236, 72, 153, 0.4);
}

/* ── Cursor Reset + Body ── */


[data-theme="ext-split-gradient"] body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
}

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*  COMPONENT STYLES  [ext-split-gradient]  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

/* ── Navbar ────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .navbar {
  background: var(--nav-scrolled-bg);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: var(--transition);

}
[data-theme="ext-split-gradient"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: var(--transition);

}
[data-theme="ext-split-gradient"] .nav-link:hover {
  color: var(--accent);
}

/* ── Preloader ─────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .preloader {
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;

}
[data-theme="ext-split-gradient"] .preloader-text {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.5rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-gradient"] .preloader-sub {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  margin-top: 0.5rem;

}
[data-theme="ext-split-gradient"] .preloader-bar span {
  background: var(--accent);
  display: block;
  height: 2px;
  border-radius: 2px;
}
[data-theme="ext-split-gradient"] .progress-bar {
  background: var(--accent);
  height: 3px;
  border-radius: 3px;
  transition: var(--transition);

}

/* ── Hero ──────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .hero {
  position: relative;
  background: var(--hero-overlay-color);

}
[data-theme="ext-split-gradient"] .hero-tag {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;

}
[data-theme="ext-split-gradient"] .hero-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.1;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-split-gradient"] .hero-tagline {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1.125rem;
  max-width: 600px;
  line-height: 1.6;

}
[data-theme="ext-split-gradient"] .hero-scroll {
  color: var(--text-mid);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;

}
[data-theme="ext-split-gradient"] .scroll-line {
  background: var(--accent);
  width: 1px;
  height: 40px;
  margin: 0 auto;

}

/* ── Section Headers ───────────────────────────────────────── */
[data-theme="ext-split-gradient"] .section-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 0.875rem;
  opacity: 0.7;

}
[data-theme="ext-split-gradient"] .section-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* ── About ─────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .about-name {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.5rem);

}
[data-theme="ext-split-gradient"] .about-role {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-gradient"] .about-bio {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.7;

}

/* ── Skills ────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .skill-bar-fill {
  background: linear-gradient(90deg, var(--accent), var(--accent-glow));
  height: 100%;
  border-radius: inherit;
  transition: var(--transition);

}

/* ── Stats ─────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .stat-num {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);

}

/* ── Album ─────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .album-item {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: var(--transition);

}
[data-theme="ext-split-gradient"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-gradient"] .album-info-title {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.125rem;

}
[data-theme="ext-split-gradient"] .album-info-meta {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;

}

/* ── Section Head ──────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .section-head .kicker {
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
[data-theme="ext-split-gradient"] .section-head h2 {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
}

/* ── Buttons ───────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .btn.primary {
  background: var(--accent);
  color: var(--white);
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-gradient"] .btn.primary:hover {
  box-shadow: 0 0 20px var(--accent-glow);
}
[data-theme="ext-split-gradient"] .btn.ghost {
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);
}
[data-theme="ext-split-gradient"] .btn.ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ── Contact Cards ─────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .contact-card {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: var(--transition);

}
[data-theme="ext-split-gradient"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 8px 30px var(--accent-glow);
  transform: translateY(-4px);
}
[data-theme="ext-split-gradient"] .card-icon {
  color: var(--accent);
  font-size: 1.5rem;

}
[data-theme="ext-split-gradient"] .card-label {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;

}
[data-theme="ext-split-gradient"] .card-value {
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;

}

/* ── Footer ────────────────────────────────────────────────── */
[data-theme="ext-split-gradient"] .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);

}
[data-theme="ext-split-gradient"] .footer-logo {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1.25rem;

}
[data-theme="ext-split-gradient"] .footer-links a {
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.875rem;
  transition: var(--transition);
}
[data-theme="ext-split-gradient"] .footer-links a:hover {
  color: var(--accent);
}
[data-theme="ext-split-gradient"] .social-icon {
  color: var(--text-dim);
  font-size: 1.25rem;
  transition: var(--transition);

}
[data-theme="ext-split-gradient"] .social-icon:hover {
  color: var(--accent);
  transform: translateY(-2px);
}


/* ================================================================
   UNIQUE EFFECT: Animated Gradient Split
   body::before = 200%-wide gradient that shifts position over time
   The split boundary is always visible but continuously moves
   ================================================================ */
@keyframes ext-split-gradient-move {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes ext-split-gradient-pulse {
  0%, 100% { opacity: 0.6; }
  50%      { opacity: 1; }
}
[data-theme="ext-split-gradient"] body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    rgba(99,102,241,.15),
    rgba(236,72,153,.15));
  background-size: 200% 100%;
  animation: ext-split-gradient-move 8s ease-in-out infinite;
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-gradient"] body::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    transparent 49.5%,
    rgba(255,255,255,0.2) 49.5%,
    rgba(255,255,255,0.2) 50.5%,
    transparent 50.5%);
  background-size: 200% 100%;
  animation: ext-split-gradient-move 8s ease-in-out infinite,
             ext-split-gradient-pulse 4s ease-in-out infinite;
  z-index: -2;
  pointer-events: none;
}
[data-theme="ext-split-gradient"] .hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    rgba(99,102,241,.2),
    rgba(236,72,153,.2));
  background-size: 200% 100%;
  animation: ext-split-gradient-move 8s ease-in-out infinite;
  z-index: 0;
  pointer-events: none;
}

/* ── Swatch ── */
.ts-swatch.ts-ap-ext-split-gradient{background:linear-gradient(90deg,#6366f1 50%,#ec4899 50%);}



/* ============================================================
   THEME 1/10  ext-girl-pink  (粉色少女 / Pink Girl)
   Photography: gallery rose-frames, aperture hearts, pink darkroom
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-girl-pink"] {
  --font-display:"Pacifico", cursive;
  --font-body:"Quicksand", sans-serif;

  --bg: #1a0814;
  --bg-2: #1e0a18;
  --bg-3: #220c1c;
  --bg-4: #260e20;
  --text: #f5e0ec;
  --text-dim: #c088a8;
  --text-mid: #a0688a;
  --accent: #ec4899;
  --font-head: 'Pacifico', cursive;
  --font-body: 'Quicksand', sans-serif;
  --radius: 16px;
}

/* --- 2. Color variants --- */
[data-theme="ext-girl-pink"][data-color="pink"] {
  --accent: #ec4899;
  --glow: rgba(236, 72, 153, .35);
}
[data-theme="ext-girl-pink"][data-color="rose"] {
  --accent: #f43f5e;
  --glow: rgba(244, 63, 94, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-girl-pink"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-girl-pink"] .navbar {
  background: rgba(26, 8, 20, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(236, 72, 153, .18);
  border-radius: 0 0 var(--radius) var(--radius);

}
[data-theme="ext-girl-pink"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  letter-spacing: .5px;

}
[data-theme="ext-girl-pink"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-girl-pink"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- number inside a circle with pink border */
[data-theme="ext-girl-pink"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-girl-pink"] .section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 2px solid var(--accent);
  border-radius: 50%;
  font-family: var(--font-head);
  font-size: 15px;
  color: var(--accent);
  background: rgba(236, 72, 153, .08);

}
[data-theme="ext-girl-pink"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section divider -- thin line with a heart in the center */
[data-theme="ext-girl-pink"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(236, 72, 153, .4), transparent);
  margin: 36px 0;

}
[data-theme="ext-girl-pink"] .section-divider::before {
  content: '\2665';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 14px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- rounded corners, thin pink gradient border,
   heart-shaped decorative dots at top-left & bottom-right corners */
[data-theme="ext-girl-pink"] .album-item {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 2px solid transparent;
  background-image: linear-gradient(var(--bg-2), var(--bg-2)),
    linear-gradient(135deg, rgba(236, 72, 153, .55), rgba(244, 63, 94, .30));
  background-origin: border-box;
  background-clip: padding-box, border-box;
  transition: transform .35s ease, box-shadow .35s ease;

}
[data-theme="ext-girl-pink"] .album-item::before {
  content: '\2665';
  position: absolute;
  top: -7px;
  left: -7px;
  font-size: 11px;
  color: var(--accent);
  z-index: 2;
}
[data-theme="ext-girl-pink"] .album-item::after {
  content: '\2665';
  position: absolute;
  bottom: -7px;
  right: -7px;
  font-size: 11px;
  color: var(--accent);
  z-index: 2;
}
[data-theme="ext-girl-pink"] .album-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 32px rgba(236, 72, 153, .22);
}

/* Buttons -- pill-shaped with subtle inner glow */
[data-theme="ext-girl-pink"] .btn {
  border-radius: 999px;
  padding: 10px 28px;
  font-family: var(--font-body);
  font-weight: 600;
  border: 1px solid rgba(236, 72, 153, .4);
  background: rgba(236, 72, 153, .1);
  color: var(--text);
  box-shadow: inset 0 0 12px rgba(236, 72, 153, .15);
  transition: all .3s ease;

}
[data-theme="ext-girl-pink"] .btn:hover {
  background: rgba(236, 72, 153, .2);
  box-shadow: inset 0 0 20px rgba(236, 72, 153, .3), 0 4px 16px rgba(236, 72, 153, .2);
}
[data-theme="ext-girl-pink"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);
  box-shadow: inset 0 0 14px rgba(255, 255, 255, .2);

}
[data-theme="ext-girl-pink"] .btn-primary:hover {
  box-shadow: inset 0 0 20px rgba(255, 255, 255, .3), 0 6px 22px var(--glow);
}

/* Contact cards -- top-left corner pink ribbon via clip-path */
[data-theme="ext-girl-pink"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(236, 72, 153, .15);
  overflow: hidden;
  transition: border-color .3s ease;

}
[data-theme="ext-girl-pink"] .contact-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 22px;
  height: 22px;
  background: var(--accent);
  clip-path: polygon(0 0, 100% 0, 0 100%);
  opacity: .75;
}
[data-theme="ext-girl-pink"] .contact-card:hover {
  border-color: rgba(236, 72, 153, .4);
}
[data-theme="ext-girl-pink"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;

}
[data-theme="ext-girl-pink"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero */
[data-theme="ext-girl-pink"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-girl-pink"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(236, 72, 153, .4);
  color: var(--accent);
  font-size: .85rem;
  margin-bottom: 16px;

}
[data-theme="ext-girl-pink"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-girl-pink"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  color: var(--text);

}
[data-theme="ext-girl-pink"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars */
[data-theme="ext-girl-pink"] .skill-bar {
  height: 8px;
  background: rgba(236, 72, 153, .12);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-girl-pink"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #f43f5e);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(236, 72, 153, .4);

}

/* Footer */
[data-theme="ext-girl-pink"] footer {
  background: rgba(26, 8, 20, .6);
  border-top: 1px solid rgba(236, 72, 153, .12);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- 6. Subtle background -- pink radial glow in corners only --- */
[data-theme="ext-girl-pink"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .06;
  background:
    radial-gradient(circle at 0% 0%, var(--accent) 0%, transparent 28%),
    radial-gradient(circle at 100% 100%, var(--accent) 0%, transparent 28%),
    radial-gradient(circle at 100% 0%, #f43f5e 0%, transparent 22%),
    radial-gradient(circle at 0% 100%, #f43f5e 0%, transparent 22%);
}

/* --- 7. Swatch --- */
[data-theme="ext-girl-pink"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #1a0814, #ec4899);

}

/* ============================================================
   THEME 2/10  ext-girl-dream  (梦幻少女 / Dream Girl)
   Photography: starlit gallery, dreamy bokeh frames, celestial aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-girl-dream"] {
  --font-display:"Comfortaa", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #0e0820;
  --bg-2: #120a28;
  --bg-3: #160c30;
  --bg-4: #1a0e38;
  --text: #e8d8f0;
  --text-dim: #9878b4;
  --text-mid: #7a609a;
  --accent: #c084fc;
  --font-head: 'Comfortaa', cursive;
  --font-body: 'Inter', sans-serif;
  --radius: 16px;
}

/* --- 2. Color variants --- */
[data-theme="ext-girl-dream"][data-color="dream"] {
  --accent: #c084fc;
  --glow: rgba(192, 132, 252, .35);
}
[data-theme="ext-girl-dream"][data-color="starlight"] {
  --accent: #e879f9;
  --glow: rgba(232, 121, 249, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-girl-dream"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-girl-dream"] .navbar {
  background: rgba(14, 8, 32, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(192, 132, 252, .18);
  border-radius: 0 0 var(--radius) var(--radius);

}
[data-theme="ext-girl-dream"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);

}
[data-theme="ext-girl-dream"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-girl-dream"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- star icon before the number */
[data-theme="ext-girl-dream"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-girl-dream"] .section-num {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--accent);

}
[data-theme="ext-girl-dream"] .section-num::before {
  content: '\2605';
  margin-right: 6px;
  font-size: .85rem;
}
[data-theme="ext-girl-dream"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section divider */
[data-theme="ext-girl-dream"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(192, 132, 252, .35), transparent);
  margin: 36px 0;

}
[data-theme="ext-girl-dream"] .section-divider::before {
  content: '\2605';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 12px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- gradient border purple to pink, hover soft glow */
[data-theme="ext-girl-dream"] .album-item {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 2px solid transparent;
  background-image: linear-gradient(var(--bg-2), var(--bg-2)),
    linear-gradient(135deg, rgba(192, 132, 252, .50), rgba(232, 121, 249, .35));
  background-origin: border-box;
  background-clip: padding-box, border-box;
  transition: transform .35s ease, box-shadow .35s ease;

}
[data-theme="ext-girl-dream"] .album-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 28px rgba(192, 132, 252, .30);
}

/* Buttons -- subtle shimmer on hover (background-position animation) */
[data-theme="ext-girl-dream"] .btn {
  border-radius: var(--radius);
  padding: 10px 26px;
  font-family: var(--font-body);
  font-weight: 600;
  border: 1px solid rgba(192, 132, 252, .35);
  background: linear-gradient(110deg, rgba(192, 132, 252, .10) 0%, rgba(232, 121, 249, .18) 50%, rgba(192, 132, 252, .10) 100%);
  background-size: 200% 100%;
  background-position: 0% 0%;
  color: var(--text);
  transition: background-position .6s ease, box-shadow .3s ease;

}
[data-theme="ext-girl-dream"] .btn:hover {
  background-position: 100% 0%;
  box-shadow: 0 4px 18px rgba(192, 132, 252, .25);
}
[data-theme="ext-girl-dream"] .btn-primary {
  background: linear-gradient(110deg, var(--accent), #e879f9);
  background-size: 200% 100%;
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-girl-dream"] .btn-primary:hover {
  box-shadow: 0 6px 24px var(--glow);
}

/* Contact cards -- star-burst at bottom-right corner */
[data-theme="ext-girl-dream"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(192, 132, 252, .15);
  overflow: hidden;
  transition: border-color .3s ease;

}
[data-theme="ext-girl-dream"] .contact-card::before {
  content: '\2605';
  position: absolute;
  bottom: 8px;
  right: 10px;
  font-size: 22px;
  color: var(--accent);
  opacity: .35;
  
}
[data-theme="ext-girl-dream"] .contact-card:hover {
  border-color: rgba(192, 132, 252, .4);
}
[data-theme="ext-girl-dream"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;

}
[data-theme="ext-girl-dream"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero -- pill-shaped tag with gradient border */
[data-theme="ext-girl-dream"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-girl-dream"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid transparent;
  background-image: linear-gradient(var(--bg), var(--bg)),
    linear-gradient(135deg, var(--accent), #e879f9);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  color: var(--accent);
  font-size: .85rem;
  margin-bottom: 16px;

}
[data-theme="ext-girl-dream"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-girl-dream"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  color: var(--text);

}
[data-theme="ext-girl-dream"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars -- gradient purple to pink with glow */
[data-theme="ext-girl-dream"] .skill-bar {
  height: 8px;
  background: rgba(192, 132, 252, .12);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-girl-dream"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #e879f9);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(192, 132, 252, .45);

}

/* Footer */
[data-theme="ext-girl-dream"] footer {
  background: rgba(14, 8, 32, .6);
  border-top: 1px solid rgba(192, 132, 252, .12);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- 6. Subtle background -- static starfield, twinkle only --- */
[data-theme="ext-girl-dream"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .15;
  background-image:
    radial-gradient(1px 1px at 10% 20%, rgba(192, 132, 252, .8), transparent),
    radial-gradient(1px 1px at 25% 60%, rgba(232, 121, 249, .6), transparent),
    radial-gradient(1px 1px at 45% 15%, rgba(192, 132, 252, .7), transparent),
    radial-gradient(1px 1px at 60% 75%, rgba(232, 121, 249, .5), transparent),
    radial-gradient(1px 1px at 75% 30%, rgba(192, 132, 252, .8), transparent),
    radial-gradient(1px 1px at 88% 55%, rgba(232, 121, 249, .6), transparent),
    radial-gradient(1px 1px at 95% 85%, rgba(192, 132, 252, .7), transparent),
    radial-gradient(2px 2px at 35% 90%, rgba(232, 121, 249, .5), transparent),
    radial-gradient(1px 1px at 15% 45%, rgba(192, 132, 252, .6), transparent),
    radial-gradient(1px 1px at 70% 10%, rgba(232, 121, 249, .7), transparent);
  animation: girlDreamTwinkle 4s ease-in-out infinite alternate;
}
@keyframes girlDreamTwinkle {
  0%   { opacity: .10; }
  100% { opacity: .15; }
}

/* --- 7. Swatch --- */
[data-theme="ext-girl-dream"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0e0820, #c084fc);

}

/* ============================================================
   THEME 3/10  ext-girl-floral  (花漾少女 / Floral Girl)
   Photography: botanical gallery, petal-frames, blooming aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-girl-floral"] {
  --font-display:"Caveat", cursive;
  --font-body:"Inter", sans-serif;

  --bg: #140a14;
  --bg-2: #180c18;
  --bg-3: #1c0e1c;
  --bg-4: #201020;
  --text: #f0e0e8;
  --text-dim: #b888a0;
  --text-mid: #986a82;
  --accent: #f472b6;
  --font-head: 'Caveat', cursive;
  --font-body: 'Inter', sans-serif;
  --radius: 14px;
}

/* --- 2. Color variants --- */
[data-theme="ext-girl-floral"][data-color="floral"] {
  --accent: #f472b6;
  --glow: rgba(244, 114, 182, .35);
}
[data-theme="ext-girl-floral"][data-color="blossom"] {
  --accent: #fb7185;
  --glow: rgba(251, 113, 133, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-girl-floral"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-girl-floral"] .navbar {
  background: rgba(20, 10, 20, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(244, 114, 182, .18);
  border-radius: 0 0 var(--radius) var(--radius);

}
[data-theme="ext-girl-floral"] .nav-brand {
  font-family: var(--font-head);
  font-size: 1.5rem;
  color: var(--accent);

}
[data-theme="ext-girl-floral"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-girl-floral"] .nav-link:hover {
  color: var(--accent);
}

/* Section head */
[data-theme="ext-girl-floral"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-girl-floral"] .section-num {
  font-family: var(--font-head);
  font-size: 1.6rem;
  color: var(--accent);

}
[data-theme="ext-girl-floral"] .section-title {
  font-family: var(--font-head);
  font-size: 1.8rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section divider -- thin line with flower icon in center */
[data-theme="ext-girl-floral"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(244, 114, 182, .35), transparent);
  margin: 36px 0;

}
[data-theme="ext-girl-floral"] .section-divider::before {
  content: '\273F';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 16px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- petal-like asymmetric border-radius,
   hover "blooms" with outward box-shadow */
[data-theme="ext-girl-floral"] .album-item {
  border-radius: 14px 14px 14px 28px;
  overflow: hidden;
  background: var(--bg-2);
  border: 2px solid rgba(244, 114, 182, .25);
  transition: box-shadow .4s ease, transform .35s ease;

}
[data-theme="ext-girl-floral"] .album-item:hover {
  transform: translateY(-4px);
  box-shadow:
    0 0 0 4px rgba(244, 114, 182, .10),
    0 0 0 10px rgba(244, 114, 182, .06),
    0 0 0 18px rgba(244, 114, 182, .03),
    0 8px 28px rgba(244, 114, 182, .18);
}

/* Buttons -- slight curve on one corner */
[data-theme="ext-girl-floral"] .btn {
  padding: 10px 26px;
  font-family: var(--font-body);
  font-weight: 600;
  border: 1px solid rgba(244, 114, 182, .35);
  border-radius: 12px 12px 12px 24px;
  background: rgba(244, 114, 182, .1);
  color: var(--text);
  transition: all .3s ease;

}
[data-theme="ext-girl-floral"] .btn:hover {
  background: rgba(244, 114, 182, .2);
  box-shadow: 0 4px 16px rgba(244, 114, 182, .2);
}
[data-theme="ext-girl-floral"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-girl-floral"] .btn-primary:hover {
  box-shadow: 0 6px 22px var(--glow);
}

/* Contact cards -- vine-like left border gradient */
[data-theme="ext-girl-floral"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(244, 114, 182, .12);
  border-left: 3px solid;
  border-left-color: var(--accent);
  border-image: linear-gradient(180deg, var(--accent), rgba(244, 114, 182, .2), var(--accent)) 1;
  transition: border-color .3s ease;

}
[data-theme="ext-girl-floral"] .contact-card:hover {
  border-color: rgba(244, 114, 182, .35);
}
[data-theme="ext-girl-floral"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;

}
[data-theme="ext-girl-floral"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero */
[data-theme="ext-girl-floral"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-girl-floral"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(244, 114, 182, .4);
  color: var(--accent);
  font-size: .85rem;
  margin-bottom: 16px;

}
[data-theme="ext-girl-floral"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.6rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-girl-floral"] .about-name {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);

}
[data-theme="ext-girl-floral"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars */
[data-theme="ext-girl-floral"] .skill-bar {
  height: 8px;
  background: rgba(244, 114, 182, .12);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-girl-floral"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #fb7185);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(244, 114, 182, .4);

}

/* Footer */
[data-theme="ext-girl-floral"] footer {
  background: rgba(20, 10, 20, .6);
  border-top: 1px solid rgba(244, 114, 182, .12);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- 6. Subtle background -- faint floral conic-gradient shapes --- */
[data-theme="ext-girl-floral"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .05;
  background-image:
    conic-gradient(from 0deg at 15% 25%, rgba(244, 114, 182, .4) 0deg, transparent 60deg, transparent 300deg, rgba(244, 114, 182, .4) 360deg),
    conic-gradient(from 45deg at 85% 75%, rgba(251, 113, 133, .3) 0deg, transparent 50deg, transparent 310deg, rgba(251, 113, 133, .3) 360deg),
    conic-gradient(from 90deg at 50% 50%, rgba(244, 114, 182, .2) 0deg, transparent 40deg, transparent 320deg, rgba(244, 114, 182, .2) 360deg);
  background-size: 300px 300px, 280px 280px, 350px 350px;
  background-repeat: no-repeat;
}

/* --- 7. Swatch --- */
[data-theme="ext-girl-floral"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #140a14, #f472b6);

}

/* ============================================================
   THEME 4/10  ext-girl-bubble  (泡泡少女 / Bubble Girl)
   Photography: glass gallery, lens-droplet frames, glossy aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-girl-bubble"] {
  --font-display:"Fredoka", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #0a0e1a;
  --bg-2: #0e1220;
  --bg-3: #121628;
  --bg-4: #161a30;
  --text: #e0e8f0;
  --text-dim: #8090a8;
  --text-mid: #687898;
  --accent: #60a5fa;
  --font-head: 'Fredoka', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 16px;
}

/* --- 2. Color variants --- */
[data-theme="ext-girl-bubble"][data-color="bubble"] {
  --accent: #60a5fa;
  --glow: rgba(96, 165, 250, .35);
}
[data-theme="ext-girl-bubble"][data-color="pearl"] {
  --accent: #a5f3fc;
  --glow: rgba(165, 243, 252, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-girl-bubble"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-girl-bubble"] .navbar {
  background: rgba(10, 14, 26, .72);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(96, 165, 250, .18);
  border-radius: 0 0 var(--radius) var(--radius);

}
[data-theme="ext-girl-bubble"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);

}
[data-theme="ext-girl-bubble"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-girl-bubble"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- number inside a glass circle */
[data-theme="ext-girl-bubble"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-girl-bubble"] .section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-family: var(--font-head);
  font-size: 14px;
  color: var(--accent);
  background: rgba(96, 165, 250, .10);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(96, 165, 250, .25);
  box-shadow: inset 0 0 10px rgba(96, 165, 250, .15);

}
[data-theme="ext-girl-bubble"] .section-title {
  font-family: var(--font-head);
  font-size: 1.5rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section divider */
[data-theme="ext-girl-bubble"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(96, 165, 250, .35), transparent);
  margin: 36px 0;

}
[data-theme="ext-girl-bubble"] .section-divider::before {
  content: '\25CF';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 10px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- glassmorphism: semi-transparent bg, blur, inset border */
[data-theme="ext-girl-bubble"] .album-item {
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(255, 255, 255, .04);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, .08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10), inset 0 0 14px rgba(96, 165, 250, .06);
  transition: transform .35s ease, box-shadow .35s ease;

}
[data-theme="ext-girl-bubble"] .album-item:hover {
  transform: scale(1.02);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .15),
    0 0 0 2px rgba(96, 165, 250, .35),
    0 8px 28px rgba(96, 165, 250, .20);
}

/* Buttons -- pill-shaped with glossy "wet" highlight */
[data-theme="ext-girl-bubble"] .btn {
  border-radius: 999px;
  padding: 10px 28px;
  font-family: var(--font-body);
  font-weight: 600;
  border: 1px solid rgba(96, 165, 250, .3);
  background: linear-gradient(180deg, rgba(96, 165, 250, .12) 0%, rgba(96, 165, 250, .06) 50%, rgba(96, 165, 250, .12) 100%);
  color: var(--text);
  position: relative;
  overflow: hidden;
  transition: all .3s ease;

}
[data-theme="ext-girl-bubble"] .btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, rgba(255, 255, 255, .18), transparent);
  border-radius: 999px 999px 0 0;
  pointer-events: none;
}
[data-theme="ext-girl-bubble"] .btn:hover {
  box-shadow: 0 4px 18px rgba(96, 165, 250, .25);
}
[data-theme="ext-girl-bubble"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-girl-bubble"] .btn-primary::before {
  background: linear-gradient(180deg, rgba(255, 255, 255, .35), transparent);
}
[data-theme="ext-girl-bubble"] .btn-primary:hover {
  box-shadow: 0 6px 24px var(--glow);
}

/* Contact cards -- glassmorphism with brighter top edge */
[data-theme="ext-girl-bubble"] .contact-card {
  background: rgba(255, 255, 255, .04);
  backdrop-filter: blur(10px);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-top: 2px solid;
  border-image: linear-gradient(90deg, var(--accent), rgba(165, 243, 252, .3), var(--accent)) 1;
  box-shadow: inset 0 0 14px rgba(96, 165, 250, .06);
  transition: box-shadow .3s ease;

}
[data-theme="ext-girl-bubble"] .contact-card:hover {
  box-shadow: inset 0 0 18px rgba(96, 165, 250, .12);
}
[data-theme="ext-girl-bubble"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;

}
[data-theme="ext-girl-bubble"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero */
[data-theme="ext-girl-bubble"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-girl-bubble"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  background: rgba(96, 165, 250, .10);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(96, 165, 250, .3);
  color: var(--accent);
  font-size: .85rem;
  margin-bottom: 16px;

}
[data-theme="ext-girl-bubble"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-girl-bubble"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  color: var(--text);

}
[data-theme="ext-girl-bubble"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars -- bubble-like rounded fill with highlight dot */
[data-theme="ext-girl-bubble"] .skill-bar {
  height: 10px;
  background: rgba(96, 165, 250, .10);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-girl-bubble"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #a5f3fc);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(96, 165, 250, .4), inset 0 1px 0 rgba(255, 255, 255, .25);

}

/* Footer */
[data-theme="ext-girl-bubble"] footer {
  background: rgba(10, 14, 26, .6);
  backdrop-filter: blur(8px);
  border-top: 1px solid rgba(96, 165, 250, .12);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- 6. Subtle background -- faint static bubbles --- */
[data-theme="ext-girl-bubble"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .04;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(96, 165, 250, .5) 0%, transparent 8%),
    radial-gradient(circle at 78% 62%, rgba(165, 243, 252, .4) 0%, transparent 7%),
    radial-gradient(circle at 45% 88%, rgba(96, 165, 250, .3) 0%, transparent 6%),
    radial-gradient(circle at 92% 22%, rgba(165, 243, 252, .3) 0%, transparent 5%);
  background-repeat: no-repeat;
}

/* --- 7. Swatch --- */
[data-theme="ext-girl-bubble"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0a0e1a, #60a5fa);

}

/* ============================================================
   THEME 5/10  ext-girl-pearl  (珍珠少女 / Pearl Girl)
   Photography: pearlescent gallery, satin frames, elegant darkroom
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-girl-pearl"] {
  --font-display:"Cormorant Garamond", serif;
  --font-body:"Inter", sans-serif;

  --bg: #0e0e14;
  --bg-2: #121218;
  --bg-3: #161620;
  --bg-4: #1a1a28;
  --text: #e8e8f0;
  --text-dim: #9090a0;
  --text-mid: #787890;
  --accent: #f0e6d2;
  --font-head: 'Cormorant Garamond', serif;
  --font-body: 'Inter', sans-serif;
  --radius: 16px;
}

/* --- 2. Color variants --- */
[data-theme="ext-girl-pearl"][data-color="pearl"] {
  --accent: #f0e6d2;
  --glow: rgba(240, 230, 210, .35);
}
[data-theme="ext-girl-pearl"][data-color="cream"] {
  --accent: #fde8c8;
  --glow: rgba(253, 232, 200, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-girl-pearl"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-girl-pearl"] .navbar {
  background: rgba(14, 14, 20, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(240, 230, 210, .15);
  border-radius: 0 0 var(--radius) var(--radius);

}
[data-theme="ext-girl-pearl"] .nav-brand {
  font-family: var(--font-head);
  font-size: 1.5rem;
  color: var(--accent);
  font-style: italic;

}
[data-theme="ext-girl-pearl"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-girl-pearl"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- pearl dot before the number */
[data-theme="ext-girl-pearl"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-girl-pearl"] .section-num {
  font-family: var(--font-head);
  font-size: 1.3rem;
  color: var(--accent);
  font-style: italic;

}
[data-theme="ext-girl-pearl"] .section-num::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 8px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff8ee, var(--accent) 60%, #c8b896);
  box-shadow: 0 0 6px rgba(240, 230, 210, .4);
  vertical-align: middle;
}
[data-theme="ext-girl-pearl"] .section-title {
  font-family: var(--font-head);
  font-size: 1.8rem;
  color: var(--text);
  font-style: italic;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section titles -- thin underline with pearl dots at each end */
[data-theme="ext-girl-pearl"] .section-title::after {
  content: '';
  display: block;
  width: 60%;
  height: 1px;
  margin-top: 8px;
  background: linear-gradient(90deg,
    var(--accent) 0%, var(--accent) 4px, transparent 4px, transparent calc(100% - 4px),
    var(--accent) calc(100% - 4px), var(--accent) 100%);
}

/* Section divider */
[data-theme="ext-girl-pearl"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(240, 230, 210, .30), transparent);
  margin: 36px 0;

}
[data-theme="ext-girl-pearl"] .section-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff8ee, var(--accent) 60%, #c8b896);
  box-shadow: 0 0 6px rgba(240, 230, 210, .4);
}

/* Album items -- pearlescent gradient border (white to cream to pale pink) */
[data-theme="ext-girl-pearl"] .album-item {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 2px solid transparent;
  background-image: linear-gradient(var(--bg-2), var(--bg-2)),
    linear-gradient(135deg, rgba(255, 255, 255, .40), rgba(240, 230, 210, .30), rgba(253, 232, 200, .25));
  background-origin: border-box;
  background-clip: padding-box, border-box;
  transition: box-shadow .4s ease, transform .35s ease;

}
[data-theme="ext-girl-pearl"] .album-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 28px rgba(240, 230, 210, .25);
}

/* Buttons -- satin-like gradient that shifts on hover */
[data-theme="ext-girl-pearl"] .btn {
  border-radius: var(--radius);
  padding: 10px 28px;
  font-family: var(--font-body);
  font-weight: 600;
  border: 1px solid rgba(240, 230, 210, .25);
  background: linear-gradient(135deg,
    rgba(240, 230, 210, .08) 0%, rgba(253, 232, 200, .14) 50%, rgba(240, 230, 210, .08) 100%);
  background-size: 200% 100%;
  color: var(--text);
  transition: background-position .5s ease, box-shadow .3s ease;

}
[data-theme="ext-girl-pearl"] .btn:hover {
  background-position: 100% 0%;
  box-shadow: 0 4px 18px rgba(240, 230, 210, .20);
}
[data-theme="ext-girl-pearl"] .btn-primary {
  background: linear-gradient(135deg, #f0e6d2, #fde8c8);
  background-size: 200% 100%;
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-girl-pearl"] .btn-primary:hover {
  box-shadow: 0 6px 24px var(--glow);
}

/* Contact cards -- subtle inner glow (warm white inset) */
[data-theme="ext-girl-pearl"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(240, 230, 210, .12);
  box-shadow: inset 0 0 20px rgba(240, 230, 210, .05);
  transition: box-shadow .3s ease;

}
[data-theme="ext-girl-pearl"] .contact-card:hover {
  box-shadow: inset 0 0 28px rgba(240, 230, 210, .10);
}
[data-theme="ext-girl-pearl"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.4rem;
  font-style: italic;

}
[data-theme="ext-girl-pearl"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero */
[data-theme="ext-girl-pearl"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-girl-pearl"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(240, 230, 210, .30);
  color: var(--accent);
  font-size: .85rem;
  font-family: var(--font-head);
  font-style: italic;
  margin-bottom: 16px;

}
[data-theme="ext-girl-pearl"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.6rem;
  color: var(--text);
  font-style: italic;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-girl-pearl"] .about-name {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);
  font-style: italic;

}
[data-theme="ext-girl-pearl"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars -- gradient with moving highlight (shimmer) */
[data-theme="ext-girl-pearl"] .skill-bar {
  height: 8px;
  background: rgba(240, 230, 210, .10);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-girl-pearl"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #f0e6d2, #fde8c8, #fff8ee, #fde8c8, #f0e6d2);
  background-size: 200% 100%;
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(240, 230, 210, .35);
  animation: girlPearlShimmer 4s linear infinite;

}
@keyframes girlPearlShimmer {
  0%   { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

/* Footer */
[data-theme="ext-girl-pearl"] footer {
  background: rgba(14, 14, 20, .6);
  border-top: 1px solid rgba(240, 230, 210, .10);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
  font-family: var(--font-head);
  font-style: italic;
}

/* --- 6. Subtle background -- pearl shimmer conic-gradient, very slow --- */
[data-theme="ext-girl-pearl"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .06;
  background: conic-gradient(
    from 0deg at 50% 50%,
    rgba(240, 230, 210, .12) 0deg,
    rgba(253, 232, 200, .06) 90deg,
    rgba(255, 248, 238, .10) 180deg,
    rgba(253, 232, 200, .06) 270deg,
    rgba(240, 230, 210, .12) 360deg
  );
  animation: girlPearlRotate 30s linear infinite;
}
@keyframes girlPearlRotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* --- 7. Swatch --- */
[data-theme="ext-girl-pearl"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0e0e14, #f0e6d2);

}

/* ============================================================
   THEME 6/10  ext-boy-tech  (科技男孩 / Tech Boy)
   Photography: viewfinder brackets, terminal gallery, scan aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-boy-tech"] {
  --font-display:"JetBrains Mono", monospace;
  --font-body:"Inter", sans-serif;

  --bg: #04060a;
  --bg-2: #060810;
  --bg-3: #080a14;
  --bg-4: #0a0c18;
  --text: #c8f0d8;
  --text-dim: #5a8068;
  --text-mid: #486858;
  --accent: #00ff88;
  --font-head: 'JetBrains Mono', monospace;
  --font-body: 'Inter', sans-serif;
  --radius: 8px;
}

/* --- 2. Color variants --- */
[data-theme="ext-boy-tech"][data-color="tech"] {
  --accent: #00ff88;
  --glow: rgba(0, 255, 136, .35);
}
[data-theme="ext-boy-tech"][data-color="circuit"] {
  --accent: #22d3ee;
  --glow: rgba(34, 211, 238, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-boy-tech"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-boy-tech"] .navbar {
  background: rgba(4, 6, 10, .90);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0, 255, 136, .18);

}
[data-theme="ext-boy-tech"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-size: 1rem;

}
[data-theme="ext-boy-tech"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-head);
  font-size: .85rem;
  transition: color .3s ease;

}
[data-theme="ext-boy-tech"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- monospace with > prefix (terminal prompt) */
[data-theme="ext-boy-tech"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-boy-tech"] .section-num {
  font-family: var(--font-head);
  font-size: 1rem;
  color: var(--accent);

}
[data-theme="ext-boy-tech"] .section-num::before {
  content: '> ';
  color: var(--accent);
}
[data-theme="ext-boy-tech"] .section-title {
  font-family: var(--font-head);
  font-size: 1.3rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section divider -- dashed line with >_ terminal cursor */
[data-theme="ext-boy-tech"] .section-divider {
  position: relative;
  height: 0;
  border-top: 1px dashed rgba(0, 255, 136, .30);
  margin: 36px 0;

}
[data-theme="ext-boy-tech"] .section-divider::before {
  content: '>_';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-family: var(--font-head);
  font-size: 12px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- viewfinder L-shaped brackets at corners */
[data-theme="ext-boy-tech"] .album-item {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid rgba(0, 255, 136, .15);
  transition: border-color .3s ease, box-shadow .3s ease;

}
[data-theme="ext-boy-tech"] .album-item::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 6px;
  width: 16px;
  height: 16px;
  border-top: 2px solid var(--accent);
  border-left: 2px solid var(--accent);
  z-index: 2;
}
[data-theme="ext-boy-tech"] .album-item::after {
  content: '';
  position: absolute;
  bottom: 6px;
  right: 6px;
  width: 16px;
  height: 16px;
  border-bottom: 2px solid var(--accent);
  border-right: 2px solid var(--accent);
  z-index: 2;
}
[data-theme="ext-boy-tech"] .album-item:hover {
  border-color: rgba(0, 255, 136, .4);
  box-shadow: 0 0 0 1px rgba(0, 255, 136, .2), 0 8px 28px rgba(0, 255, 136, .12);
  /* green scan line across top edge */
}
[data-theme="ext-boy-tech"] .album-item:hover::before {
  box-shadow: 8px 0 0 -6px var(--accent), 0 8px 0 -6px var(--accent);
}

/* Buttons -- angular corners via clip-path, with glow */
[data-theme="ext-boy-tech"] .btn {
  padding: 10px 26px;
  font-family: var(--font-head);
  font-size: .85rem;
  font-weight: 700;
  border: 1px solid rgba(0, 255, 136, .35);
  background: rgba(0, 255, 136, .08);
  color: var(--text);
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
  transition: background .3s ease, box-shadow .3s ease;

}
[data-theme="ext-boy-tech"] .btn:hover {
  background: rgba(0, 255, 136, .18);
  box-shadow: 0 0 18px rgba(0, 255, 136, .25);
}
[data-theme="ext-boy-tech"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-boy-tech"] .btn-primary:hover {
  box-shadow: 0 0 24px var(--glow);
}

/* Contact cards -- thin top border with blinking cursor */
[data-theme="ext-boy-tech"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(0, 255, 136, .12);
  border-top: 2px solid var(--accent);
  position: relative;
  overflow: hidden;
  transition: border-color .3s ease;

}
[data-theme="ext-boy-tech"] .contact-card::before {
  content: '';
  position: absolute;
  top: 0;
  right: 16px;
  width: 8px;
  height: 2px;
  background: var(--accent);
  animation: boyTechCursor 1s steps(2) infinite;
}
@keyframes boyTechCursor {
  0%, 50%  { opacity: 1; }
  51%, 100% { opacity: 0; }
}
[data-theme="ext-boy-tech"] .contact-card:hover {
  border-color: rgba(0, 255, 136, .3);
}
[data-theme="ext-boy-tech"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1rem;

}
[data-theme="ext-boy-tech"] .contact-info {
  color: var(--text-dim);
  font-size: .85rem;
  font-family: var(--font-head);

}

/* Hero */
[data-theme="ext-boy-tech"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-boy-tech"] .hero-tag {
  display: inline-block;
  padding: 4px 14px;
  font-family: var(--font-head);
  font-size: .8rem;
  color: var(--accent);
  border: 1px solid rgba(0, 255, 136, .35);
  border-radius: var(--radius);
  margin-bottom: 16px;

}
[data-theme="ext-boy-tech"] .hero-title {
  font-family: var(--font-head);
  font-size: 2rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-boy-tech"] .about-name {
  font-family: var(--font-head);
  font-size: 1.6rem;
  color: var(--text);

}
[data-theme="ext-boy-tech"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;
  font-family: var(--font-head);
  font-size: .9rem;

}

/* Skill bars -- scanning line (bright dot moving across) */
[data-theme="ext-boy-tech"] .skill-bar {
  height: 8px;
  background: rgba(0, 255, 136, .10);
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;

}
[data-theme="ext-boy-tech"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(0, 255, 136, .6), var(--accent));
  border-radius: var(--radius);
  box-shadow: 0 0 6px rgba(0, 255, 136, .4);
  position: relative;
  overflow: hidden;

}
[data-theme="ext-boy-tech"] .skill-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 100%;
  background: #fff;
  box-shadow: 0 0 8px var(--accent);
  animation: boyTechScan 2s linear infinite;
}
@keyframes boyTechScan {
  0%   { left: 0%; }
  100% { left: 100%; }
}

/* Footer */
[data-theme="ext-boy-tech"] footer {
  background: rgba(4, 6, 10, .6);
  border-top: 1px solid rgba(0, 255, 136, .10);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
  font-family: var(--font-head);
  font-size: .8rem;
}

/* --- 6. Subtle background -- static grid lines --- */
[data-theme="ext-boy-tech"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .04;
  background-image:
    repeating-linear-gradient(0deg, rgba(0, 255, 136, .5) 0px, rgba(0, 255, 136, .5) 1px, transparent 1px, transparent 40px),
    repeating-linear-gradient(90deg, rgba(0, 255, 136, .5) 0px, rgba(0, 255, 136, .5) 1px, transparent 1px, transparent 40px);
}

/* --- 7. Swatch --- */
[data-theme="ext-boy-tech"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #04060a, #00ff88);

}

/* ============================================================
   THEME 7/10  ext-boy-rocket  (火箭太空 / Rocket Boy)
   Photography: launch-trajectory frames, starfield gallery, flame aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-boy-rocket"] {
  --font-display:"Bebas Neue", sans-serif;
  --font-body:"Barlow Condensed", sans-serif;

  --bg: #04060e;
  --bg-2: #060814;
  --bg-3: #080a18;
  --bg-4: #0a0c1e;
  --text: #e0e8f0;
  --text-dim: #607090;
  --text-mid: #485868;
  --accent: #f97316;
  --font-head: 'Bebas Neue', sans-serif;
  --font-body: 'Barlow Condensed', sans-serif;
  --radius: 16px;
}

/* --- 2. Color variants --- */
[data-theme="ext-boy-rocket"][data-color="rocket"] {
  --accent: #f97316;
  --glow: rgba(249, 115, 22, .35);
}
[data-theme="ext-boy-rocket"][data-color="space"] {
  --accent: #3b82f6;
  --glow: rgba(59, 130, 246, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-boy-rocket"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-boy-rocket"] .navbar {
  background: rgba(4, 6, 14, .90);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(249, 115, 22, .18);

}
[data-theme="ext-boy-rocket"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-size: 1.3rem;
  letter-spacing: 2px;

}
[data-theme="ext-boy-rocket"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-body);
  letter-spacing: 1px;
  transition: color .3s ease;

}
[data-theme="ext-boy-rocket"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- triangle prefix like a rocket icon */
[data-theme="ext-boy-rocket"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-boy-rocket"] .section-num {
  font-family: var(--font-head);
  font-size: 1.4rem;
  color: var(--accent);
  letter-spacing: 2px;

}
[data-theme="ext-boy-rocket"] .section-num::before {
  content: '\25B2';
  margin-right: 6px;
  font-size: .85rem;
}
[data-theme="ext-boy-rocket"] .section-title {
  font-family: var(--font-head);
  font-size: 1.8rem;
  color: var(--text);
  letter-spacing: 2px;
  /* thin orange line underneath */
  border-bottom: 2px solid var(--accent);
  padding-bottom: 4px;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* Section divider */
[data-theme="ext-boy-rocket"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(249, 115, 22, .35), transparent);
  margin: 36px 0;

}
[data-theme="ext-boy-rocket"] .section-divider::before {
  content: '\25B2';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 10px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- top edge orange glow gradient, bottom glow on hover */
[data-theme="ext-boy-rocket"] .album-item {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid rgba(249, 115, 22, .15);
  border-top: 2px solid;
  border-image: linear-gradient(90deg, var(--accent), rgba(249, 115, 22, .2), var(--accent)) 1;
  transition: box-shadow .35s ease, transform .35s ease;

}
[data-theme="ext-boy-rocket"] .album-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(249, 115, 22, .22);
}

/* Buttons -- upward-pointing arrow shape via clip-path */
[data-theme="ext-boy-rocket"] .btn {
  padding: 10px 28px;
  font-family: var(--font-head);
  font-size: 1.1rem;
  letter-spacing: 2px;
  border: 1px solid rgba(249, 115, 22, .35);
  background: rgba(249, 115, 22, .10);
  color: var(--text);
  clip-path: polygon(10px 0, 100% 0, 100% 100%, 0 100%, 0 10px);
  transition: background .3s ease, box-shadow .3s ease;

}
[data-theme="ext-boy-rocket"] .btn:hover {
  background: rgba(249, 115, 22, .20);
  box-shadow: 0 0 18px rgba(249, 115, 22, .25);
}
[data-theme="ext-boy-rocket"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-boy-rocket"] .btn-primary:hover {
  box-shadow: 0 0 24px var(--glow);
}

/* Contact cards -- "launch trail" effect on hover (gradient from bottom) */
[data-theme="ext-boy-rocket"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(249, 115, 22, .12);
  transition: border-color .3s ease, box-shadow .3s ease;

}
[data-theme="ext-boy-rocket"] .contact-card:hover {
  border-color: rgba(249, 115, 22, .35);
  box-shadow: inset 0 -40px 40px -30px rgba(249, 115, 22, .25);
}
[data-theme="ext-boy-rocket"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;
  letter-spacing: 1px;

}
[data-theme="ext-boy-rocket"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;
  font-family: var(--font-body);

}

/* Hero */
[data-theme="ext-boy-rocket"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-boy-rocket"] .hero-tag {
  display: inline-block;
  padding: 4px 14px;
  border-radius: var(--radius);
  border: 1px solid rgba(249, 115, 22, .35);
  color: var(--accent);
  font-size: .9rem;
  font-family: var(--font-body);
  letter-spacing: 1px;
  margin-bottom: 16px;

}
[data-theme="ext-boy-rocket"] .hero-title {
  font-family: var(--font-head);
  font-size: 3rem;
  color: var(--text);
  letter-spacing: 3px;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}

/* About */
[data-theme="ext-boy-rocket"] .about-name {
  font-family: var(--font-head);
  font-size: 2.4rem;
  color: var(--text);
  letter-spacing: 2px;

}
[data-theme="ext-boy-rocket"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;
  font-family: var(--font-body);

}

/* Skill bars -- flame gradient (orange to yellow) */
[data-theme="ext-boy-rocket"] .skill-bar {
  height: 8px;
  background: rgba(249, 115, 22, .10);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-boy-rocket"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #f97316, #fbbf24);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(249, 115, 22, .4);

}

/* Footer */
[data-theme="ext-boy-rocket"] footer {
  background: rgba(4, 6, 14, .6);
  border-top: 1px solid rgba(249, 115, 22, .10);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
  font-family: var(--font-body);
  letter-spacing: 1px;
}

/* --- 6. Subtle background -- starfield, slow twinkle --- */
[data-theme="ext-boy-rocket"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .20;
  background-image:
    radial-gradient(1px 1px at 8% 12%, rgba(224, 232, 240, .8), transparent),
    radial-gradient(1px 1px at 22% 48%, rgba(224, 232, 240, .5), transparent),
    radial-gradient(1px 1px at 38% 22%, rgba(224, 232, 240, .7), transparent),
    radial-gradient(1px 1px at 52% 68%, rgba(224, 232, 240, .5), transparent),
    radial-gradient(1px 1px at 68% 18%, rgba(224, 232, 240, .8), transparent),
    radial-gradient(1px 1px at 82% 52%, rgba(224, 232, 240, .6), transparent),
    radial-gradient(1px 1px at 94% 82%, rgba(224, 232, 240, .7), transparent),
    radial-gradient(1px 1px at 15% 78%, rgba(224, 232, 240, .5), transparent),
    radial-gradient(1px 1px at 45% 92%, rgba(224, 232, 240, .6), transparent),
    radial-gradient(1px 1px at 75% 8%, rgba(224, 232, 240, .7), transparent);
  animation: boyRocketTwinkle 6s ease-in-out infinite alternate;
}
@keyframes boyRocketTwinkle {
  0%   { opacity: .14; }
  100% { opacity: .20; }
}

/* --- 7. Swatch --- */
[data-theme="ext-boy-rocket"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #04060e, #f97316);

}

/* ============================================================
   THEME 8/10  ext-boy-ocean  (海洋探险 / Ocean Boy)
   Photography: wave-edged frames, water-surface gallery, ripple aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-boy-ocean"] {
  --font-display:"Nunito", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #020a14;
  --bg-2: #040e1a;
  --bg-3: #061220;
  --bg-4: #081628;
  --text: #d0e8f0;
  --text-dim: #5080a0;
  --text-mid: #386880;
  --accent: #0ea5e9;
  --font-head: 'Nunito', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 12px;
}

/* --- 2. Color variants --- */
[data-theme="ext-boy-ocean"][data-color="ocean"] {
  --accent: #0ea5e9;
  --glow: rgba(14, 165, 233, .35);
}
[data-theme="ext-boy-ocean"][data-color="deep"] {
  --accent: #06b6d4;
  --glow: rgba(6, 182, 212, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-boy-ocean"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-boy-ocean"] .navbar {
  background: rgba(2, 10, 20, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(14, 165, 233, .18);
  border-radius: 0 0 var(--radius) var(--radius);

}
[data-theme="ext-boy-ocean"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 800;

}
[data-theme="ext-boy-ocean"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-boy-ocean"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- wave prefix */
[data-theme="ext-boy-ocean"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-boy-ocean"] .section-num {
  font-family: var(--font-head);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--accent);

}
[data-theme="ext-boy-ocean"] .section-num::before {
  content: '\2248';
  margin-right: 6px;
}
[data-theme="ext-boy-ocean"] .section-title {
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 800;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);


}

/* Section divider -- wavy line with water drop in center */
[data-theme="ext-boy-ocean"] .section-divider {
  position: relative;
  height: 1px;
  background: repeating-linear-gradient(90deg,
    rgba(14, 165, 233, .3) 0px, rgba(14, 165, 233, .3) 6px,
    transparent 6px, transparent 12px);
  margin: 36px 0;

}
[data-theme="ext-boy-ocean"] .section-divider::before {
  content: '\25CF';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 10px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- wave-shaped bottom border */
[data-theme="ext-boy-ocean"] .album-item {
  border-radius: var(--radius) var(--radius) 24px 24px;
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid rgba(14, 165, 233, .15);
  border-bottom: 3px solid var(--accent);
  transition: box-shadow .35s ease, transform .35s ease;

}
[data-theme="ext-boy-ocean"] .album-item:hover {
  transform: translateY(-4px);
  /* blue ripple expanding from center */
  box-shadow:
    0 0 0 3px rgba(14, 165, 233, .12),
    0 0 0 8px rgba(14, 165, 233, .06),
    0 0 0 16px rgba(14, 165, 233, .03),
    0 8px 28px rgba(14, 165, 233, .18);
}

/* Buttons -- wavy bottom edge via border-radius */
[data-theme="ext-boy-ocean"] .btn {
  padding: 10px 26px;
  font-family: var(--font-body);
  font-weight: 700;
  border: 1px solid rgba(14, 165, 233, .35);
  border-radius: var(--radius) var(--radius) 20px 20px / var(--radius) var(--radius) 14px 14px;
  background: rgba(14, 165, 233, .10);
  color: var(--text);
  transition: all .3s ease;

}
[data-theme="ext-boy-ocean"] .btn:hover {
  background: rgba(14, 165, 233, .20);
  box-shadow: 0 4px 18px rgba(14, 165, 233, .25);
}
[data-theme="ext-boy-ocean"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-boy-ocean"] .btn-primary:hover {
  box-shadow: 0 6px 24px var(--glow);
}

/* Contact cards -- blue gradient top border (water surface) */
[data-theme="ext-boy-ocean"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(14, 165, 233, .12);
  border-top: 2px solid;
  border-image: linear-gradient(90deg, var(--accent), rgba(6, 182, 212, .3), var(--accent)) 1;
  transition: border-color .3s ease;

}
[data-theme="ext-boy-ocean"] .contact-card:hover {
  border-color: rgba(14, 165, 233, .3);
}
[data-theme="ext-boy-ocean"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 800;

}
[data-theme="ext-boy-ocean"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero */
[data-theme="ext-boy-ocean"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-boy-ocean"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(14, 165, 233, .35);
  color: var(--accent);
  font-size: .85rem;
  font-weight: 700;
  margin-bottom: 16px;

}
[data-theme="ext-boy-ocean"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  font-weight: 800;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);


}

/* About */
[data-theme="ext-boy-ocean"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 800;
  color: var(--text);

}
[data-theme="ext-boy-ocean"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars -- water-like gradient with wave animation */
[data-theme="ext-boy-ocean"] .skill-bar {
  height: 8px;
  background: rgba(14, 165, 233, .10);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-boy-ocean"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #0ea5e9, #06b6d4, #0ea5e9);
  background-size: 200% 100%;
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(14, 165, 233, .4);
  animation: boyOceanWave 3s linear infinite;

}
@keyframes boyOceanWave {
  0%   { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

/* Footer */
[data-theme="ext-boy-ocean"] footer {
  background: rgba(2, 10, 20, .6);
  border-top: 1px solid rgba(14, 165, 233, .10);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- 6. Subtle background -- wave pattern at bottom only --- */
[data-theme="ext-boy-ocean"] body::before {
  content: '';
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 200px;
  z-index: 0;
  pointer-events: none;
  opacity: .06;
  background-image: repeating-radial-gradient(
    circle at 50% 100%,
    rgba(14, 165, 233, .5) 0px,
    rgba(14, 165, 233, .5) 2px,
    transparent 2px,
    transparent 30px
  );
  background-size: 200px 200px;
  background-position: 0 100%;
  animation: boyOceanDrift 12s linear infinite;
}
@keyframes boyOceanDrift {
  0%   { background-position: 0 100%; }
  100% { background-position: 200px 100%; }
}

/* --- 7. Swatch --- */
[data-theme="ext-boy-ocean"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #020a14, #0ea5e9);

}

/* ============================================================
   THEME 9/10  ext-boy-jungle  (丛林冒险 / Jungle Boy)
   Photography: leaf-shaped frames, vine gallery, bamboo aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-boy-jungle"] {
  --font-display:"Barlow", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #040a06;
  --bg-2: #060e08;
  --bg-3: #08120a;
  --bg-4: #0a160c;
  --text: #d0f0d8;
  --text-dim: #508058;
  --text-mid: #386840;
  --accent: #16a34a;
  --font-head: 'Barlow', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 12px;
}

/* --- 2. Color variants --- */
[data-theme="ext-boy-jungle"][data-color="jungle"] {
  --accent: #16a34a;
  --glow: rgba(22, 163, 74, .35);
}
[data-theme="ext-boy-jungle"][data-color="expedition"] {
  --accent: #65a30d;
  --glow: rgba(101, 163, 13, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-boy-jungle"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-boy-jungle"] .navbar {
  background: rgba(4, 10, 6, .90);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(22, 163, 74, .18);

}
[data-theme="ext-boy-jungle"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 1px;

}
[data-theme="ext-boy-jungle"] .nav-link {
  color: var(--text-dim);
  transition: color .3s ease;

}
[data-theme="ext-boy-jungle"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- leaf prefix */
[data-theme="ext-boy-jungle"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-boy-jungle"] .section-num {
  font-family: var(--font-head);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--accent);

}
[data-theme="ext-boy-jungle"] .section-num::before {
  content: '\25BA';
  margin-right: 6px;
}
[data-theme="ext-boy-jungle"] .section-title {
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);


}

/* Section divider -- leaf shape in center */
[data-theme="ext-boy-jungle"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(22, 163, 74, .30), transparent);
  margin: 36px 0;

}
[data-theme="ext-boy-jungle"] .section-divider::before {
  content: '\25BA';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(90deg);
  color: var(--accent);
  font-size: 12px;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- leaf-shaped asymmetric border-radius */
[data-theme="ext-boy-jungle"] .album-item {
  border-radius: 12px 12px 12px 24px;
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid rgba(22, 163, 74, .15);
  transition: box-shadow .35s ease, transform .35s ease;

}
[data-theme="ext-boy-jungle"] .album-item:hover {
  transform: translateY(-4px);
  /* green glow like sunlight through leaves */
  box-shadow: 0 0 28px rgba(22, 163, 74, .22);
}

/* Buttons -- rounded corners with green glow */
[data-theme="ext-boy-jungle"] .btn {
  padding: 10px 26px;
  font-family: var(--font-body);
  font-weight: 700;
  border: 1px solid rgba(22, 163, 74, .35);
  border-radius: 10px;
  background: rgba(22, 163, 74, .10);
  color: var(--text);
  transition: all .3s ease;

}
[data-theme="ext-boy-jungle"] .btn:hover {
  background: rgba(22, 163, 74, .20);
  box-shadow: 0 0 18px rgba(22, 163, 74, .25);
}
[data-theme="ext-boy-jungle"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-boy-jungle"] .btn-primary:hover {
  box-shadow: 0 0 24px var(--glow);
}

/* Contact cards -- vine-like left border gradient */
[data-theme="ext-boy-jungle"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(22, 163, 74, .12);
  border-left: 3px solid;
  border-left-color: var(--accent);
  border-image: linear-gradient(180deg, var(--accent), rgba(22, 163, 74, .2), var(--accent)) 1;
  transition: border-color .3s ease;

}
[data-theme="ext-boy-jungle"] .contact-card:hover {
  border-color: rgba(22, 163, 74, .3);
}
[data-theme="ext-boy-jungle"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 700;

}
[data-theme="ext-boy-jungle"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* Hero */
[data-theme="ext-boy-jungle"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-boy-jungle"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(22, 163, 74, .35);
  color: var(--accent);
  font-size: .85rem;
  font-weight: 700;
  margin-bottom: 16px;

}
[data-theme="ext-boy-jungle"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);


}

/* About */
[data-theme="ext-boy-jungle"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 700;
  color: var(--text);

}
[data-theme="ext-boy-jungle"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* Skill bars -- bamboo-like segmented fill */
[data-theme="ext-boy-jungle"] .skill-bar {
  height: 10px;
  background: rgba(22, 163, 74, .10);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-boy-jungle"] .skill-fill {
  height: 100%;
  background:
    repeating-linear-gradient(90deg,
      rgba(255, 255, 255, .15) 0px, rgba(255, 255, 255, .15) 2px,
      transparent 2px, transparent 16px),
    linear-gradient(90deg, var(--accent), #65a30d);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(22, 163, 74, .4);

}

/* Footer */
[data-theme="ext-boy-jungle"] footer {
  background: rgba(4, 10, 6, .6);
  border-top: 1px solid rgba(22, 163, 74, .10);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- 6. Subtle background -- vertical vine lines, very subtle sway --- */
[data-theme="ext-boy-jungle"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .05;
  background-image: repeating-linear-gradient(90deg,
    rgba(22, 163, 74, .4) 0px, rgba(22, 163, 74, .4) 1px,
    transparent 1px, transparent 80px);
  animation: boyJungleSway 8s ease-in-out infinite alternate;
}
@keyframes boyJungleSway {
  0%   { transform: translateX(-3px); }
  100% { transform: translateX(3px); }
}

/* --- 7. Swatch --- */
[data-theme="ext-boy-jungle"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #040a06, #16a34a);

}

/* ============================================================
   THEME 10/10  ext-boy-mech  (机甲战士 / Mech Boy)
   Photography: armor-plated frames, hex-grid gallery, energy aperture
   ============================================================ */

/* --- 1. Variables --- */
[data-theme="ext-boy-mech"] {
  --font-display:"Rajdhani", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #0a0a0e;
  --bg-2: #0e0e14;
  --bg-3: #12121a;
  --bg-4: #16161e;
  --text: #d0d0e0;
  --text-dim: #686878;
  --text-mid: #505060;
  --accent: #60a5fa;
  --font-head: 'Rajdhani', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 4px;
}

/* --- 2. Color variants --- */
[data-theme="ext-boy-mech"][data-color="mech"] {
  --accent: #60a5fa;
  --glow: rgba(96, 165, 250, .35);
}
[data-theme="ext-boy-mech"][data-color="titanium"] {
  --accent: #94a3b8;
  --glow: rgba(148, 163, 184, .35);
}

/* --- 3. Cursor reset + body --- */


[data-theme="ext-boy-mech"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 45%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}



/* --- 5. Enhanced component details --- */

/* Navbar */
[data-theme="ext-boy-mech"] .navbar {
  background: rgba(10, 10, 14, .92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(96, 165, 250, .18);

}
[data-theme="ext-boy-mech"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;

}
[data-theme="ext-boy-mech"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-head);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: color .3s ease;

}
[data-theme="ext-boy-mech"] .nav-link:hover {
  color: var(--accent);
}

/* Section head -- mechanical prefix like [01] in brackets */
[data-theme="ext-boy-mech"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-boy-mech"] .section-num {
  font-family: var(--font-head);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 1px;

}
[data-theme="ext-boy-mech"] .section-num::before {
  content: '[';
  margin-right: 2px;
}
[data-theme="ext-boy-mech"] .section-num::after {
  content: ']';
  margin-left: 2px;
}
[data-theme="ext-boy-mech"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  font-weight: 700;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 2px;
  /* thin double underline */
  border-bottom: 1px solid rgba(96, 165, 250, .3);
  box-shadow: inset 0 -4px 0 -3px rgba(96, 165, 250, .3);
  padding-bottom: 6px;


}

/* Section divider -- mech-style bracket decoration */
[data-theme="ext-boy-mech"] .section-divider {
  position: relative;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(96, 165, 250, .30), transparent);
  margin: 36px 0;

}
[data-theme="ext-boy-mech"] .section-divider::before {
  content: '[]';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 700;
  background: var(--bg);
  padding: 0 12px;
}

/* Album items -- mecha-style angular borders via clip-path */
[data-theme="ext-boy-mech"] .album-item {
  border-radius: 0;
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid rgba(96, 165, 250, .15);
  clip-path: polygon(
    8px 0, 100% 0, 100% calc(100% - 8px),
    calc(100% - 8px) 100%, 0 100%, 0 8px
  );
  transition: box-shadow .35s ease, transform .35s ease;

}
[data-theme="ext-boy-mech"] .album-item:hover {
  transform: translateY(-4px);
  /* blue energy glow at edges */
  box-shadow: 0 0 0 1px rgba(96, 165, 250, .3), 0 0 24px rgba(96, 165, 250, .20);
}

/* Buttons -- angular clip-path corners and blue glow */
[data-theme="ext-boy-mech"] .btn {
  padding: 10px 26px;
  font-family: var(--font-head);
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid rgba(96, 165, 250, .35);
  background: rgba(96, 165, 250, .08);
  color: var(--text);
  border-radius: 0;
  clip-path: polygon(
    6px 0, 100% 0, 100% calc(100% - 6px),
    calc(100% - 6px) 100%, 0 100%, 0 6px
  );
  transition: background .3s ease, box-shadow .3s ease;

}
[data-theme="ext-boy-mech"] .btn:hover {
  background: rgba(96, 165, 250, .18);
  box-shadow: 0 0 18px rgba(96, 165, 250, .25);
}
[data-theme="ext-boy-mech"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-boy-mech"] .btn-primary:hover {
  box-shadow: 0 0 24px var(--glow);
}

/* Contact cards -- double border like armor plating */
[data-theme="ext-boy-mech"] .contact-card {
  background: var(--bg-2);
  border-radius: 0;
  padding: 24px;
  border: 1px solid rgba(96, 165, 250, .2);
  box-shadow: inset 0 0 0 1px rgba(96, 165, 250, .08);
  clip-path: polygon(
    6px 0, 100% 0, 100% calc(100% - 6px),
    calc(100% - 6px) 100%, 0 100%, 0 6px
  );
  transition: box-shadow .3s ease;

}
[data-theme="ext-boy-mech"] .contact-card:hover {
  box-shadow: inset 0 0 0 1px rgba(96, 165, 250, .2), 0 0 18px rgba(96, 165, 250, .15);
}
[data-theme="ext-boy-mech"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;

}
[data-theme="ext-boy-mech"] .contact-info {
  color: var(--text-dim);
  font-size: .85rem;
  font-family: var(--font-head);

}

/* Hero */
[data-theme="ext-boy-mech"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-boy-mech"] .hero-tag {
  display: inline-block;
  padding: 4px 14px;
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--accent);
  border: 1px solid rgba(96, 165, 250, .35);
  border-radius: 0;
  clip-path: polygon(
    4px 0, 100% 0, 100% calc(100% - 4px),
    calc(100% - 4px) 100%, 0 100%, 0 4px
  );
  margin-bottom: 16px;

}
[data-theme="ext-boy-mech"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.6rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 3px;


}

/* About */
[data-theme="ext-boy-mech"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 700;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 2px;

}
[data-theme="ext-boy-mech"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;
  font-family: var(--font-body);

}

/* Skill bars -- segmented/blocky fill */
[data-theme="ext-boy-mech"] .skill-bar {
  height: 10px;
  background: rgba(96, 165, 250, .10);
  border-radius: 0;
  overflow: hidden;

}
[data-theme="ext-boy-mech"] .skill-fill {
  height: 100%;
  background:
    repeating-linear-gradient(90deg,
      rgba(10, 10, 14, .5) 0px, rgba(10, 10, 14, .5) 3px,
      transparent 3px, transparent 16px),
    linear-gradient(90deg, var(--accent), #3b82f6);
  box-shadow: 0 0 6px rgba(96, 165, 250, .4);

}

/* Footer */
[data-theme="ext-boy-mech"] footer {
  background: rgba(10, 10, 14, .6);
  border-top: 1px solid rgba(96, 165, 250, .10);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
  font-family: var(--font-head);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* --- 6. Subtle background -- hexagonal grid, static --- */
[data-theme="ext-boy-mech"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .04;
  background-image:
    repeating-conic-gradient(
      from 30deg at 50% 0%,
      rgba(96, 165, 250, .5) 0deg 1deg,
      transparent 1deg 60deg
    );
  background-size: 48px 42px;
}
[data-theme="ext-boy-mech"] body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .04;
  background-image:
    repeating-conic-gradient(
      from -30deg at 0% 50%,
      rgba(96, 165, 250, .5) 0deg 1deg,
      transparent 1deg 60deg
    );
  background-size: 48px 42px;
}

/* --- 7. Swatch --- */
[data-theme="ext-boy-mech"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: 0;
  clip-path: polygon(
    8px 0, 100% 0, 100% calc(100% - 8px),
    calc(100% - 8px) 100%, 0 100%, 0 8px
  );
  background: linear-gradient(135deg, #0a0a0e, #60a5fa);

}

/* ============================================================
   THEME 1/10  ext-new-aperture  (光圈艺术 / Aperture Art)
   Fresh & Clean — clean aperture blade aesthetic, light blue accent
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-aperture"] {
  --font-display:"Inter", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #0a0c0e;
  --bg-2: #0e1014;
  --bg-3: #121418;
  --bg-4: #16181c;
  --text: #e8ecf0;
  --text-dim: #7a8090;
  --text-mid: #5a6070;
  --accent: #38bdf8;
  --glow: rgba(56, 189, 248, .3);
  --font-head: 'Inter', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 2px;
  --transition: 0.4s cubic-bezier(.2, .6, .2, 1);
}

/* --- Color variants --- */
[data-theme="ext-new-aperture"][data-color="sky"] {
  --accent: #38bdf8;
  --glow: rgba(56, 189, 248, .3);
}
[data-theme="ext-new-aperture"][data-color="ice"] {
  --accent: #7dd3fc;
  --glow: rgba(125, 211, 252, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-aperture"] .cursor-dot,
[data-theme="ext-new-aperture"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-aperture"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-aperture"] .section,
  [data-theme="ext-new-aperture"] .section-head,
  [data-theme="ext-new-aperture"] .section-num,
  [data-theme="ext-new-aperture"] .section-title,
  [data-theme="ext-new-aperture"] .section-divider,
  [data-theme="ext-new-aperture"] .album,
  [data-theme="ext-new-aperture"] .album-item,
  [data-theme="ext-new-aperture"] .album-thumb,
  [data-theme="ext-new-aperture"] .album-meta,
  [data-theme="ext-new-aperture"] .contact-card,
  [data-theme="ext-new-aperture"] .contact-name,
  [data-theme="ext-new-aperture"] .contact-info,
  [data-theme="ext-new-aperture"] .btn,
  [data-theme="ext-new-aperture"] .btn-primary,
  [data-theme="ext-new-aperture"] .btn-secondary,
  [data-theme="ext-new-aperture"] footer,
  [data-theme="ext-new-aperture"] .footer-content,
  [data-theme="ext-new-aperture"] .about-name,
  [data-theme="ext-new-aperture"] .about-bio,
  [data-theme="ext-new-aperture"] .about-text,
  [data-theme="ext-new-aperture"] .hero,
  [data-theme="ext-new-aperture"] .hero-tag,
  [data-theme="ext-new-aperture"] .hero-title,
  [data-theme="ext-new-aperture"] .hero-sub,
  [data-theme="ext-new-aperture"] .skill-bar,
  [data-theme="ext-new-aperture"] .skill-fill,
  [data-theme="ext-new-aperture"] .skill-label,
  [data-theme="ext-new-aperture"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-aperture"] .navbar {
  background: rgba(10, 12, 14, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(56, 189, 248, .12);

}
[data-theme="ext-new-aperture"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 600;
  letter-spacing: .5px;

}
[data-theme="ext-new-aperture"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-aperture"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head --- */
[data-theme="ext-new-aperture"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-aperture"] .section-num {
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: .85rem;
  color: var(--accent);
  letter-spacing: 1px;

}
[data-theme="ext-new-aperture"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  font-weight: 600;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);


}

/* --- Section divider — thin 60px line with 4px circle --- */
[data-theme="ext-new-aperture"] .section-divider {
  position: relative;
  width: 60px;
  height: 1px;
  background: var(--text-mid);
  margin: 36px auto;

}
[data-theme="ext-new-aperture"] .section-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--accent);
}

/* --- Album items — 2px border, L-bracket accents on hover --- */
[data-theme="ext-new-aperture"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 2px solid var(--bg-4);
  transition: border-color var(--transition), transform var(--transition);

}
[data-theme="ext-new-aperture"] .album-item::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  width: 12px;
  height: 12px;
  border-top: 1px solid var(--accent);
  border-left: 1px solid var(--accent);
  opacity: 0;
  transition: opacity var(--transition);
  z-index: 2;
}
[data-theme="ext-new-aperture"] .album-item::after {
  content: '';
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 12px;
  height: 12px;
  border-bottom: 1px solid var(--accent);
  border-right: 1px solid var(--accent);
  opacity: 0;
  transition: opacity var(--transition);
  z-index: 2;
}
[data-theme="ext-new-aperture"] .album-item:hover {
  border-color: var(--accent);
  transform: translateY(-3px);
}
[data-theme="ext-new-aperture"] .album-item:hover::before,
[data-theme="ext-new-aperture"] .album-item:hover::after {
  opacity: 1;
}
[data-theme="ext-new-aperture"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-aperture"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — minimal pill, 2px border, fill on hover --- */
[data-theme="ext-new-aperture"] .btn {
  border-radius: 999px;
  padding: 10px 28px;
  font-family: var(--font-body);
  font-weight: 500;
  border: 2px solid var(--accent);
  background: transparent;
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-aperture"] .btn:hover {
  background: var(--accent);
  color: var(--bg);
}
[data-theme="ext-new-aperture"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-new-aperture"] .btn-primary:hover {
  background: transparent;
  color: var(--accent);
}
[data-theme="ext-new-aperture"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--text-mid);

}
[data-theme="ext-new-aperture"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: transparent;
}

/* --- Contact cards --- */
[data-theme="ext-new-aperture"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid var(--bg-4);
  transition: border-color var(--transition);

}
[data-theme="ext-new-aperture"] .contact-card:hover {
  border-color: rgba(56, 189, 248, .3);
}
[data-theme="ext-new-aperture"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 600;

}
[data-theme="ext-new-aperture"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-aperture"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-aperture"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border: 1px solid var(--bg-4);
  color: var(--accent);
  font-size: .8rem;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 1px;
  margin-bottom: 16px;

}
[data-theme="ext-new-aperture"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);


}
[data-theme="ext-new-aperture"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-aperture"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 600;
  color: var(--text);

}
[data-theme="ext-new-aperture"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars --- */
[data-theme="ext-new-aperture"] .skill-bar {
  height: 4px;
  background: var(--bg-4);
  border-radius: var(--radius);
  overflow: hidden;

}
[data-theme="ext-new-aperture"] .skill-fill {
  height: 100%;
  background: var(--accent);
  border-radius: var(--radius);

}
[data-theme="ext-new-aperture"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-aperture"] footer {
  background: rgba(10, 12, 14, .6);
  border-top: 1px solid var(--bg-4);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — hexagonal aperture pattern (static) --- */
[data-theme="ext-new-aperture"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .04;
  background: conic-gradient(from 0deg,
    rgba(56, 189, 248, .12) 0deg 60deg,
    transparent 60deg 120deg,
    rgba(56, 189, 248, .12) 120deg 180deg,
    transparent 180deg 240deg,
    rgba(56, 189, 248, .12) 240deg 300deg,
    transparent 300deg 360deg);
  background-size: 60px 60px;
}

/* --- Swatch --- */
[data-theme="ext-new-aperture"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0a0c0e, #38bdf8);

}


/* ============================================================
   THEME 2/10  ext-new-darkroom  (暗房工艺 / Darkroom Craft)
   Professional — analog darkroom, deep red safelight, craft
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-darkroom"] {
  --font-display:"Special Elite", monospace;
  --font-body:"Crimson Text", serif;

  --bg: #0a0606;
  --bg-2: #0e0808;
  --bg-3: #120a0a;
  --bg-4: #160c0c;
  --text: #f0d8d8;
  --text-dim: #a06868;
  --text-mid: #804848;
  --accent: #dc2626;
  --glow: rgba(220, 38, 38, .3);
  --font-head: 'Cormorant Garamond', serif;
  --font-body: 'Inter', sans-serif;
  --radius: 1px;
  --transition: 0.5s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-darkroom"][data-color="safelight"] {
  --accent: #dc2626;
  --glow: rgba(220, 38, 38, .3);
}
[data-theme="ext-new-darkroom"][data-color="amber"] {
  --accent: #f59e0b;
  --glow: rgba(245, 158, 11, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-darkroom"] .cursor-dot,
[data-theme="ext-new-darkroom"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-darkroom"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-darkroom"] .section,
  [data-theme="ext-new-darkroom"] .section-head,
  [data-theme="ext-new-darkroom"] .section-num,
  [data-theme="ext-new-darkroom"] .section-title,
  [data-theme="ext-new-darkroom"] .section-divider,
  [data-theme="ext-new-darkroom"] .album,
  [data-theme="ext-new-darkroom"] .album-item,
  [data-theme="ext-new-darkroom"] .album-thumb,
  [data-theme="ext-new-darkroom"] .album-meta,
  [data-theme="ext-new-darkroom"] .contact-card,
  [data-theme="ext-new-darkroom"] .contact-name,
  [data-theme="ext-new-darkroom"] .contact-info,
  [data-theme="ext-new-darkroom"] .btn,
  [data-theme="ext-new-darkroom"] .btn-primary,
  [data-theme="ext-new-darkroom"] .btn-secondary,
  [data-theme="ext-new-darkroom"] footer,
  [data-theme="ext-new-darkroom"] .footer-content,
  [data-theme="ext-new-darkroom"] .about-name,
  [data-theme="ext-new-darkroom"] .about-bio,
  [data-theme="ext-new-darkroom"] .about-text,
  [data-theme="ext-new-darkroom"] .hero,
  [data-theme="ext-new-darkroom"] .hero-tag,
  [data-theme="ext-new-darkroom"] .hero-title,
  [data-theme="ext-new-darkroom"] .hero-sub,
  [data-theme="ext-new-darkroom"] .skill-bar,
  [data-theme="ext-new-darkroom"] .skill-fill,
  [data-theme="ext-new-darkroom"] .skill-label,
  [data-theme="ext-new-darkroom"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-darkroom"] .navbar {
  background: rgba(10, 6, 6, .90);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(220, 38, 38, .15);

}
[data-theme="ext-new-darkroom"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-size: 1.3rem;

}
[data-theme="ext-new-darkroom"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-darkroom"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head — serif with dot prefix --- */
[data-theme="ext-new-darkroom"] .section-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-darkroom"] .section-num {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--accent);

}
[data-theme="ext-new-darkroom"] .section-num::before {
  content: '\00B7';
  margin-right: 4px;
  color: var(--text-mid);
}
[data-theme="ext-new-darkroom"] .section-title {
  font-family: var(--font-head);
  font-size: 1.7rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* --- Section divider — thin line with red dot --- */
[data-theme="ext-new-darkroom"] .section-divider {
  position: relative;
  height: 1px;
  background: var(--text-mid);
  margin: 36px auto;
  width: 120px;

}
[data-theme="ext-new-darkroom"] .section-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
}

/* --- Album items — photo paper edge (white padding + border) --- */
[data-theme="ext-new-darkroom"] .album-item {
  position: relative;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .12);
  padding: 8px;
  overflow: hidden;
  transition: border-color var(--transition), box-shadow var(--transition);

}
[data-theme="ext-new-darkroom"] .album-item:hover {
  border-color: rgba(220, 38, 38, .4);
  box-shadow: 0 0 20px rgba(220, 38, 38, .12);
}
[data-theme="ext-new-darkroom"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-darkroom"] .album-meta {
  padding: 10px 4px 4px;

}

/* --- Buttons — dark with thin red border, red glow on hover --- */
[data-theme="ext-new-darkroom"] .btn {
  border-radius: var(--radius);
  padding: 10px 26px;
  font-family: var(--font-body);
  font-weight: 500;
  border: 1px solid rgba(220, 38, 38, .4);
  background: var(--bg-2);
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-darkroom"] .btn:hover {
  border-color: var(--accent);
  box-shadow: 0 0 16px rgba(220, 38, 38, .2);
}
[data-theme="ext-new-darkroom"] .btn-primary {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);

}
[data-theme="ext-new-darkroom"] .btn-primary:hover {
  box-shadow: 0 0 22px var(--glow);
}
[data-theme="ext-new-darkroom"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--text-mid);

}
[data-theme="ext-new-darkroom"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards — thin double border --- */
[data-theme="ext-new-darkroom"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(220, 38, 38, .18);
  box-shadow: inset 0 0 0 1px rgba(220, 38, 38, .08);
  transition: border-color var(--transition);

}
[data-theme="ext-new-darkroom"] .contact-card:hover {
  border-color: rgba(220, 38, 38, .35);
}
[data-theme="ext-new-darkroom"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;

}
[data-theme="ext-new-darkroom"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-darkroom"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-darkroom"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border: 1px solid rgba(220, 38, 38, .3);
  color: var(--accent);
  font-size: .85rem;
  font-family: var(--font-head);
  margin-bottom: 16px;

}
[data-theme="ext-new-darkroom"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.6rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-new-darkroom"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-darkroom"] .about-name {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);

}
[data-theme="ext-new-darkroom"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — thin 2px line with red gradient --- */
[data-theme="ext-new-darkroom"] .skill-bar {
  height: 2px;
  background: var(--bg-4);
  border-radius: var(--radius);
  overflow: hidden;

}
[data-theme="ext-new-darkroom"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #991b1b, var(--accent));
  border-radius: var(--radius);

}
[data-theme="ext-new-darkroom"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-darkroom"] footer {
  background: rgba(10, 6, 6, .6);
  border-top: 1px solid rgba(220, 38, 38, .1);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — red safelight glow from top center (static) --- */
[data-theme="ext-new-darkroom"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .06;
  background: radial-gradient(ellipse 80% 50% at 50% 0%,
    rgba(220, 38, 38, .4) 0%, transparent 70%);
}

/* --- Swatch --- */
[data-theme="ext-new-darkroom"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0a0606, #dc2626);

}


/* ============================================================
   THEME 3/10  ext-new-contact  (印相档案 / Contact Archive)
   Professional — contact sheet archive, grid precision, proof prints
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-contact"] {
  --font-display:"Space Mono", monospace;
  --font-body:"Inter", sans-serif;

  --bg: #0c0c0c;
  --bg-2: #101010;
  --bg-3: #141414;
  --bg-4: #181818;
  --text: #e8e8e0;
  --text-dim: #787870;
  --text-mid: #585850;
  --accent: #eab308;
  --glow: rgba(234, 179, 8, .3);
  --font-head: 'JetBrains Mono', 'Courier New', monospace;
  --font-body: 'Inter', sans-serif;
  --radius: 0px;
  --transition: 0.3s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-contact"][data-color="proof"] {
  --accent: #eab308;
  --glow: rgba(234, 179, 8, .3);
}
[data-theme="ext-new-contact"][data-color="negative"] {
  --accent: #a3a3a3;
  --glow: rgba(163, 163, 163, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-contact"] .cursor-dot,
[data-theme="ext-new-contact"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-contact"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-contact"] .section,
  [data-theme="ext-new-contact"] .section-head,
  [data-theme="ext-new-contact"] .section-num,
  [data-theme="ext-new-contact"] .section-title,
  [data-theme="ext-new-contact"] .section-divider,
  [data-theme="ext-new-contact"] .album,
  [data-theme="ext-new-contact"] .album-item,
  [data-theme="ext-new-contact"] .album-thumb,
  [data-theme="ext-new-contact"] .album-meta,
  [data-theme="ext-new-contact"] .contact-card,
  [data-theme="ext-new-contact"] .contact-name,
  [data-theme="ext-new-contact"] .contact-info,
  [data-theme="ext-new-contact"] .btn,
  [data-theme="ext-new-contact"] .btn-primary,
  [data-theme="ext-new-contact"] .btn-secondary,
  [data-theme="ext-new-contact"] footer,
  [data-theme="ext-new-contact"] .footer-content,
  [data-theme="ext-new-contact"] .about-name,
  [data-theme="ext-new-contact"] .about-bio,
  [data-theme="ext-new-contact"] .about-text,
  [data-theme="ext-new-contact"] .hero,
  [data-theme="ext-new-contact"] .hero-tag,
  [data-theme="ext-new-contact"] .hero-title,
  [data-theme="ext-new-contact"] .hero-sub,
  [data-theme="ext-new-contact"] .skill-bar,
  [data-theme="ext-new-contact"] .skill-fill,
  [data-theme="ext-new-contact"] .skill-label,
  [data-theme="ext-new-contact"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-contact"] .navbar {
  background: rgba(12, 12, 12, .90);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #333;

}
[data-theme="ext-new-contact"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-size: .95rem;
  letter-spacing: 1px;

}
[data-theme="ext-new-contact"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-head);
  font-size: .85rem;
  transition: color var(--transition);

}
[data-theme="ext-new-contact"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head --- */
[data-theme="ext-new-contact"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-contact"] .section-num {
  font-family: var(--font-head);
  font-size: .85rem;
  color: var(--accent);
  letter-spacing: 1px;

}
[data-theme="ext-new-contact"] .section-title {
  font-family: var(--font-head);
  font-size: 1.4rem;
  color: var(--text);
  letter-spacing: .5px;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* --- Section divider — dashed line with square --- */
[data-theme="ext-new-contact"] .section-divider {
  position: relative;
  border-top: 1px dashed var(--text-mid);
  background: none;
  height: 0;
  margin: 36px auto;
  width: 140px;

}
[data-theme="ext-new-contact"] .section-divider::before {
  content: '\25A0';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 7px;
  background: var(--bg);
  padding: 0 8px;
}

/* --- Album items — contact sheet frame with frame number --- */
[data-theme="ext-new-contact"] .album {
  counter-reset: frame-num;

}
[data-theme="ext-new-contact"] .album-item {
  position: relative;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .03);
  border: 1px solid #333;
  padding: 4px;
  overflow: hidden;
  counter-increment: frame-num;
  transition: border-color var(--transition);

}
[data-theme="ext-new-contact"] .album-item::before {
  content: 'F-' counter(frame-num, decimal-leading-zero);
  position: absolute;
  top: 4px;
  left: 4px;
  font-family: var(--font-head);
  font-size: 9px;
  color: var(--accent);
  background: rgba(0, 0, 0, .6);
  padding: 1px 4px;
  z-index: 2;
  letter-spacing: .5px;
}
[data-theme="ext-new-contact"] .album-item:hover {
  border-color: var(--accent);
}
[data-theme="ext-new-contact"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-contact"] .album-meta {
  padding: 8px 4px 2px;

}

/* --- Buttons — monospace, angular, thin border --- */
[data-theme="ext-new-contact"] .btn {
  border-radius: var(--radius);
  padding: 10px 24px;
  font-family: var(--font-head);
  font-weight: 400;
  font-size: .85rem;
  letter-spacing: 1px;
  border: 1px solid var(--text-mid);
  background: transparent;
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-contact"] .btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
[data-theme="ext-new-contact"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-new-contact"] .btn-primary:hover {
  background: transparent;
  color: var(--accent);
}
[data-theme="ext-new-contact"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--bg-4);

}
[data-theme="ext-new-contact"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards — negative look, inverted on hover --- */
[data-theme="ext-new-contact"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid #333;
  transition: filter var(--transition), border-color var(--transition);

}
[data-theme="ext-new-contact"] .contact-card:hover {
  filter: invert(.06);
  border-color: var(--accent);
}
[data-theme="ext-new-contact"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.1rem;
  letter-spacing: .5px;

}
[data-theme="ext-new-contact"] .contact-info {
  color: var(--text-dim);
  font-size: .85rem;
  font-family: var(--font-head);

}

/* --- Hero --- */
[data-theme="ext-new-contact"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-contact"] .hero-tag {
  display: inline-block;
  padding: 5px 16px;
  border: 1px solid #333;
  color: var(--accent);
  font-size: .75rem;
  font-family: var(--font-head);
  letter-spacing: 1px;
  margin-bottom: 16px;

}
[data-theme="ext-new-contact"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);
  letter-spacing: 1px;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-new-contact"] .hero-sub {
  color: var(--text-dim);
  font-size: .95rem;

}

/* --- About --- */
[data-theme="ext-new-contact"] .about-name {
  font-family: var(--font-head);
  font-size: 1.8rem;
  color: var(--text);
  letter-spacing: 1px;

}
[data-theme="ext-new-contact"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — segmented with frame marks --- */
[data-theme="ext-new-contact"] .skill-bar {
  height: 6px;
  background:
    repeating-linear-gradient(90deg,
      var(--bg-4) 0, var(--bg-4) 1px,
      transparent 1px, transparent 12px),
    var(--bg-3);
  border-radius: var(--radius);
  overflow: hidden;

}
[data-theme="ext-new-contact"] .skill-fill {
  height: 100%;
  background: var(--accent);
  border-radius: var(--radius);

}
[data-theme="ext-new-contact"] .skill-label {
  color: var(--text-dim);
  font-size: .8rem;
  font-family: var(--font-head);

}

/* --- Footer --- */
[data-theme="ext-new-contact"] footer {
  background: rgba(12, 12, 12, .6);
  border-top: 1px solid #333;
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — fine grid (static) --- */
[data-theme="ext-new-contact"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .03;
  background:
    repeating-linear-gradient(0deg, rgba(234, 179, 8, .15) 0, rgba(234, 179, 8, .15) 1px, transparent 1px, transparent 40px),
    repeating-linear-gradient(90deg, rgba(234, 179, 8, .15) 0, rgba(234, 179, 8, .15) 1px, transparent 1px, transparent 40px);
}

/* --- Swatch --- */
[data-theme="ext-new-contact"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0c0c0c, #eab308);

}


/* ============================================================
   THEME 4/10  ext-new-gallery  (美术馆 / Art Gallery)
   Elegant & Fresh — art gallery, white walls, museum minimalism
   NOTE: This is a LIGHT theme.
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-gallery"] {
  --font-display:"Playfair Display", serif;
  --font-body:"Inter", sans-serif;

  --bg: #f8f8f5;
  --bg-2: #ffffff;
  --bg-3: #f0f0eb;
  --bg-4: #e8e8e3;
  --text: #1a1a18;
  --text-dim: #787870;
  --text-mid: #585850;
  --accent: #8b4513;
  --glow: rgba(139, 69, 19, .2);
  --font-head: 'Playfair Display', serif;
  --font-body: 'Inter', sans-serif;
  --radius: 0px;
  --transition: 0.4s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-gallery"][data-color="sienna"] {
  --accent: #8b4513;
  --glow: rgba(139, 69, 19, .2);
}
[data-theme="ext-new-gallery"][data-color="gold"] {
  --accent: #b8860b;
  --glow: rgba(184, 134, 11, .2);
}

/* --- Cursor reset --- */
[data-theme="ext-new-gallery"] .cursor-dot,
[data-theme="ext-new-gallery"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-gallery"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-gallery"] .section,
  [data-theme="ext-new-gallery"] .section-head,
  [data-theme="ext-new-gallery"] .section-num,
  [data-theme="ext-new-gallery"] .section-title,
  [data-theme="ext-new-gallery"] .section-divider,
  [data-theme="ext-new-gallery"] .album,
  [data-theme="ext-new-gallery"] .album-item,
  [data-theme="ext-new-gallery"] .album-thumb,
  [data-theme="ext-new-gallery"] .album-meta,
  [data-theme="ext-new-gallery"] .contact-card,
  [data-theme="ext-new-gallery"] .contact-name,
  [data-theme="ext-new-gallery"] .contact-info,
  [data-theme="ext-new-gallery"] .btn,
  [data-theme="ext-new-gallery"] .btn-primary,
  [data-theme="ext-new-gallery"] .btn-secondary,
  [data-theme="ext-new-gallery"] footer,
  [data-theme="ext-new-gallery"] .footer-content,
  [data-theme="ext-new-gallery"] .about-name,
  [data-theme="ext-new-gallery"] .about-bio,
  [data-theme="ext-new-gallery"] .about-text,
  [data-theme="ext-new-gallery"] .hero,
  [data-theme="ext-new-gallery"] .hero-tag,
  [data-theme="ext-new-gallery"] .hero-title,
  [data-theme="ext-new-gallery"] .hero-sub,
  [data-theme="ext-new-gallery"] .skill-bar,
  [data-theme="ext-new-gallery"] .skill-fill,
  [data-theme="ext-new-gallery"] .skill-label,
  [data-theme="ext-new-gallery"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-gallery"] .navbar {
  background: rgba(248, 248, 245, .92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid #ddd;

}
[data-theme="ext-new-gallery"] .nav-brand {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;

}
[data-theme="ext-new-gallery"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-gallery"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head — elegant serif --- */
[data-theme="ext-new-gallery"] .section-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-gallery"] .section-num {
  font-family: var(--font-head);
  font-size: 1.2rem;
  font-style: italic;
  color: var(--accent);

}
[data-theme="ext-new-gallery"] .section-title {
  font-family: var(--font-head);
  font-size: 1.8rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* --- Section divider — single thin centered line, 80px --- */
[data-theme="ext-new-gallery"] .section-divider {
  height: 1px;
  background: #ccc;
  margin: 36px auto;
  width: 80px;

}

/* --- Album items — gallery-framed photos --- */
[data-theme="ext-new-gallery"] .album-item {
  position: relative;
  border-radius: var(--radius);
  background: #fff;
  padding: 16px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
  transition: box-shadow var(--transition);

}
[data-theme="ext-new-gallery"] .album-item:hover {
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, .08),
    0 8px 30px rgba(0, 0, 0, .12);
}
[data-theme="ext-new-gallery"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-gallery"] .album-meta {
  padding: 10px 0 0;

}

/* --- Buttons — minimal, thin underline animation on hover --- */
[data-theme="ext-new-gallery"] .btn {
  border-radius: var(--radius);
  padding: 10px 24px;
  font-family: var(--font-body);
  font-weight: 500;
  border: none;
  background: transparent;
  color: var(--text);
  position: relative;
  transition: color var(--transition);

}
[data-theme="ext-new-gallery"] .btn::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  width: 0;
  height: 1px;
  background: var(--accent);
  transition: width var(--transition), left var(--transition);
}
[data-theme="ext-new-gallery"] .btn:hover {
  color: var(--accent);
}
[data-theme="ext-new-gallery"] .btn:hover::after {
  width: calc(100% - 48px);
  left: 24px;
}
[data-theme="ext-new-gallery"] .btn-primary {
  color: var(--accent);
  font-weight: 600;

}
[data-theme="ext-new-gallery"] .btn-primary:hover {
  color: var(--text);
}
[data-theme="ext-new-gallery"] .btn-secondary {
  color: var(--text-dim);

}
[data-theme="ext-new-gallery"] .btn-secondary:hover {
  color: var(--accent);
}

/* --- Contact cards — nameplate style, gold border at bottom only --- */
[data-theme="ext-new-gallery"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: none;
  border-bottom: 2px solid var(--accent);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
  transition: box-shadow var(--transition);

}
[data-theme="ext-new-gallery"] .contact-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
}
[data-theme="ext-new-gallery"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;

}
[data-theme="ext-new-gallery"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-gallery"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-gallery"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  color: var(--accent);
  font-size: .8rem;
  font-family: var(--font-head);
  font-style: italic;
  letter-spacing: 1px;
  margin-bottom: 16px;

}
[data-theme="ext-new-gallery"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.8rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-new-gallery"] .hero-sub {
  color: var(--text-dim);
  font-size: 1.05rem;

}

/* --- About --- */
[data-theme="ext-new-gallery"] .about-name {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);

}
[data-theme="ext-new-gallery"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars --- */
[data-theme="ext-new-gallery"] .skill-bar {
  height: 3px;
  background: var(--bg-4);
  border-radius: var(--radius);
  overflow: hidden;

}
[data-theme="ext-new-gallery"] .skill-fill {
  height: 100%;
  background: var(--accent);
  border-radius: var(--radius);

}
[data-theme="ext-new-gallery"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-gallery"] footer {
  background: rgba(248, 248, 245, .6);
  border-top: 1px solid #ddd;
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — paper texture (static) --- */
[data-theme="ext-new-gallery"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .03;
  background: repeating-linear-gradient(0deg,
    rgba(0, 0, 0, .1) 0, rgba(0, 0, 0, .1) 1px,
    transparent 1px, transparent 3px);
}

/* --- Swatch --- */
[data-theme="ext-new-gallery"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #f8f8f5, #8b4513);

}


/* ============================================================
   THEME 5/10  ext-new-vintage  (经典银盐 / Classic Silver Gelatin)
   Professional — warm neutral, fine art, timeless
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-vintage"] {
  --font-display:"DM Serif Display", serif;
  --font-body:"Source Serif 4", serif;

  --bg: #161210;
  --bg-2: #1a1614;
  --bg-3: #1e1a18;
  --bg-4: #221e1c;
  --text: #e8e0d8;
  --text-dim: #988878;
  --text-mid: #786858;
  --accent: #c0a060;
  --glow: rgba(192, 160, 96, .3);
  --font-head: 'Cormorant Garamond', serif;
  --font-body: 'Inter', sans-serif;
  --radius: 2px;
  --transition: 0.5s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-vintage"][data-color="silver"] {
  --accent: #c0a060;
  --glow: rgba(192, 160, 96, .3);
}
[data-theme="ext-new-vintage"][data-color="sepia"] {
  --accent: #a08050;
  --glow: rgba(160, 128, 80, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-vintage"] .cursor-dot,
[data-theme="ext-new-vintage"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-vintage"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-vintage"] .section,
  [data-theme="ext-new-vintage"] .section-head,
  [data-theme="ext-new-vintage"] .section-num,
  [data-theme="ext-new-vintage"] .section-title,
  [data-theme="ext-new-vintage"] .section-divider,
  [data-theme="ext-new-vintage"] .album,
  [data-theme="ext-new-vintage"] .album-item,
  [data-theme="ext-new-vintage"] .album-thumb,
  [data-theme="ext-new-vintage"] .album-meta,
  [data-theme="ext-new-vintage"] .contact-card,
  [data-theme="ext-new-vintage"] .contact-name,
  [data-theme="ext-new-vintage"] .contact-info,
  [data-theme="ext-new-vintage"] .btn,
  [data-theme="ext-new-vintage"] .btn-primary,
  [data-theme="ext-new-vintage"] .btn-secondary,
  [data-theme="ext-new-vintage"] footer,
  [data-theme="ext-new-vintage"] .footer-content,
  [data-theme="ext-new-vintage"] .about-name,
  [data-theme="ext-new-vintage"] .about-bio,
  [data-theme="ext-new-vintage"] .about-text,
  [data-theme="ext-new-vintage"] .hero,
  [data-theme="ext-new-vintage"] .hero-tag,
  [data-theme="ext-new-vintage"] .hero-title,
  [data-theme="ext-new-vintage"] .hero-sub,
  [data-theme="ext-new-vintage"] .skill-bar,
  [data-theme="ext-new-vintage"] .skill-fill,
  [data-theme="ext-new-vintage"] .skill-label,
  [data-theme="ext-new-vintage"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-vintage"] .navbar {
  background: rgba(22, 18, 16, .90);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid #3a342e;

}
[data-theme="ext-new-vintage"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-size: 1.3rem;

}
[data-theme="ext-new-vintage"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-vintage"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head — serif with decorative line (— 01 —) --- */
[data-theme="ext-new-vintage"] .section-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-vintage"] .section-num {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--accent);

}
[data-theme="ext-new-vintage"] .section-num::before {
  content: '\2014\00A0';
  color: var(--text-mid);
}
[data-theme="ext-new-vintage"] .section-num::after {
  content: '\00A0\2014';
  color: var(--text-mid);
}
[data-theme="ext-new-vintage"] .section-title {
  font-family: var(--font-head);
  font-size: 1.7rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* --- Section divider — ornamental, diamond in center --- */
[data-theme="ext-new-vintage"] .section-divider {
  position: relative;
  height: 1px;
  background: var(--text-mid);
  margin: 36px auto;
  width: 120px;

}
[data-theme="ext-new-vintage"] .section-divider::before {
  content: '\25C6';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--accent);
  font-size: 8px;
  background: var(--bg);
  padding: 0 8px;
}

/* --- Album items — warm gray border, gold on hover --- */
[data-theme="ext-new-vintage"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid #3a342e;
  transition: border-color var(--transition), box-shadow var(--transition);

}
[data-theme="ext-new-vintage"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 0 18px rgba(192, 160, 96, .1);
}
[data-theme="ext-new-vintage"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-vintage"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — thin border, serif, gold fill on hover --- */
[data-theme="ext-new-vintage"] .btn {
  border-radius: var(--radius);
  padding: 10px 26px;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: 1.05rem;
  border: 1px solid var(--text-mid);
  background: transparent;
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-vintage"] .btn:hover {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);
}
[data-theme="ext-new-vintage"] .btn-primary {
  border-color: var(--accent);
  color: var(--accent);

}
[data-theme="ext-new-vintage"] .btn-primary:hover {
  background: var(--accent);
  color: var(--bg);
}
[data-theme="ext-new-vintage"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--bg-4);

}
[data-theme="ext-new-vintage"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: transparent;
}

/* --- Contact cards — warm border, inner shadow --- */
[data-theme="ext-new-vintage"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid #3a342e;
  box-shadow: inset 0 1px 4px rgba(0, 0, 0, .15);
  transition: border-color var(--transition);

}
[data-theme="ext-new-vintage"] .contact-card:hover {
  border-color: var(--accent);
}
[data-theme="ext-new-vintage"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;

}
[data-theme="ext-new-vintage"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-vintage"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-vintage"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border: 1px solid #3a342e;
  color: var(--accent);
  font-size: .85rem;
  font-family: var(--font-head);
  margin-bottom: 16px;

}
[data-theme="ext-new-vintage"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.6rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-new-vintage"] .hero-sub {
  color: var(--text-dim);
  font-size: 1.05rem;

}

/* --- About --- */
[data-theme="ext-new-vintage"] .about-name {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);

}
[data-theme="ext-new-vintage"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — warm gold gradient, thin --- */
[data-theme="ext-new-vintage"] .skill-bar {
  height: 3px;
  background: var(--bg-4);
  border-radius: var(--radius);
  overflow: hidden;

}
[data-theme="ext-new-vintage"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #8a7040, var(--accent));
  border-radius: var(--radius);

}
[data-theme="ext-new-vintage"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-vintage"] footer {
  background: rgba(22, 18, 16, .6);
  border-top: 1px solid #3a342e;
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — paper grain (static) --- */
[data-theme="ext-new-vintage"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .03;
  background: repeating-linear-gradient(0deg,
    rgba(192, 160, 96, .12) 0, rgba(192, 160, 96, .12) 1px,
    transparent 1px, transparent 2px);
}

/* --- Swatch --- */
[data-theme="ext-new-vintage"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #161210, #c0a060);

}


/* ============================================================
   THEME 6/10  ext-new-lensball  (水晶球 / Crystal Ball)
   Fresh & Dreamy — crystal lens ball, refraction, glass sphere
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-lensball"] {
  --font-display:"Exo 2", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #06080c;
  --bg-2: #0a0c12;
  --bg-3: #0e1018;
  --bg-4: #121420;
  --text: #e0ecf0;
  --text-dim: #5a7080;
  --text-mid: #485868;
  --accent: #818cf8;
  --glow: rgba(129, 140, 248, .3);
  --font-head: 'Exo 2', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 12px;
  --transition: 0.5s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-lensball"][data-color="crystal"] {
  --accent: #818cf8;
  --glow: rgba(129, 140, 248, .3);
}
[data-theme="ext-new-lensball"][data-color="prism"] {
  --accent: #22d3ee;
  --glow: rgba(34, 211, 238, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-lensball"] .cursor-dot,
[data-theme="ext-new-lensball"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-lensball"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-lensball"] .section,
  [data-theme="ext-new-lensball"] .section-head,
  [data-theme="ext-new-lensball"] .section-num,
  [data-theme="ext-new-lensball"] .section-title,
  [data-theme="ext-new-lensball"] .section-divider,
  [data-theme="ext-new-lensball"] .album,
  [data-theme="ext-new-lensball"] .album-item,
  [data-theme="ext-new-lensball"] .album-thumb,
  [data-theme="ext-new-lensball"] .album-meta,
  [data-theme="ext-new-lensball"] .contact-card,
  [data-theme="ext-new-lensball"] .contact-name,
  [data-theme="ext-new-lensball"] .contact-info,
  [data-theme="ext-new-lensball"] .btn,
  [data-theme="ext-new-lensball"] .btn-primary,
  [data-theme="ext-new-lensball"] .btn-secondary,
  [data-theme="ext-new-lensball"] footer,
  [data-theme="ext-new-lensball"] .footer-content,
  [data-theme="ext-new-lensball"] .about-name,
  [data-theme="ext-new-lensball"] .about-bio,
  [data-theme="ext-new-lensball"] .about-text,
  [data-theme="ext-new-lensball"] .hero,
  [data-theme="ext-new-lensball"] .hero-tag,
  [data-theme="ext-new-lensball"] .hero-title,
  [data-theme="ext-new-lensball"] .hero-sub,
  [data-theme="ext-new-lensball"] .skill-bar,
  [data-theme="ext-new-lensball"] .skill-fill,
  [data-theme="ext-new-lensball"] .skill-label,
  [data-theme="ext-new-lensball"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-lensball"] .navbar {
  background: rgba(6, 8, 12, .85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(129, 140, 248, .12);

}
[data-theme="ext-new-lensball"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 600;

}
[data-theme="ext-new-lensball"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-lensball"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head — numbers inside small circles --- */
[data-theme="ext-new-lensball"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-lensball"] .section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 1px solid var(--accent);
  border-radius: 50%;
  font-family: var(--font-head);
  font-size: .7rem;
  color: var(--accent);

}
[data-theme="ext-new-lensball"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  font-weight: 600;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);


}

/* --- Section divider — small circle --- */
[data-theme="ext-new-lensball"] .section-divider {
  text-align: center;
  height: auto;
  background: none;
  margin: 36px 0;

}
[data-theme="ext-new-lensball"] .section-divider::before {
  content: '\25CF';
  color: var(--accent);
  font-size: 10px;
}

/* --- Album items — glass effect, gradient border, prismatic glow --- */
[data-theme="ext-new-lensball"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(14, 16, 24, .5);
  border: 1px solid transparent;
  background-image:
    linear-gradient(rgba(14, 16, 24, .5), rgba(14, 16, 24, .5)),
    linear-gradient(135deg, rgba(129, 140, 248, .4), rgba(34, 211, 238, .4));
  background-origin: border-box;
  background-clip: padding-box, border-box;
  backdrop-filter: blur(4px);
  transition: box-shadow var(--transition);

}
[data-theme="ext-new-lensball"] .album-item:hover {
  box-shadow:
    0 0 20px rgba(129, 140, 248, .15),
    0 0 40px rgba(34, 211, 238, .1),
    0 4px 16px rgba(129, 140, 248, .2);
}
[data-theme="ext-new-lensball"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-lensball"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — pill, glass background --- */
[data-theme="ext-new-lensball"] .btn {
  border-radius: 999px;
  padding: 10px 28px;
  font-family: var(--font-body);
  font-weight: 500;
  border: 1px solid rgba(129, 140, 248, .3);
  background: rgba(129, 140, 248, .08);
  backdrop-filter: blur(6px);
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-lensball"] .btn:hover {
  background: rgba(129, 140, 248, .18);
  box-shadow: 0 0 16px rgba(129, 140, 248, .2);
}
[data-theme="ext-new-lensball"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-new-lensball"] .btn-primary:hover {
  box-shadow: 0 0 22px var(--glow);
}
[data-theme="ext-new-lensball"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--text-mid);

}
[data-theme="ext-new-lensball"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards — glassmorphism --- */
[data-theme="ext-new-lensball"] .contact-card {
  background: rgba(14, 16, 24, .4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid rgba(129, 140, 248, .15);
  transition: border-color var(--transition);

}
[data-theme="ext-new-lensball"] .contact-card:hover {
  border-color: rgba(129, 140, 248, .35);
}
[data-theme="ext-new-lensball"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 600;

}
[data-theme="ext-new-lensball"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-lensball"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-lensball"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid rgba(129, 140, 248, .3);
  background: rgba(129, 140, 248, .06);
  color: var(--accent);
  font-size: .8rem;
  margin-bottom: 16px;

}
[data-theme="ext-new-lensball"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);


}
[data-theme="ext-new-lensball"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-lensball"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 600;
  color: var(--text);

}
[data-theme="ext-new-lensball"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — liquid gradient --- */
[data-theme="ext-new-lensball"] .skill-bar {
  height: 6px;
  background: var(--bg-4);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-new-lensball"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #818cf8, #22d3ee);
  border-radius: 999px;
  box-shadow: 0 0 8px rgba(129, 140, 248, .3);

}
[data-theme="ext-new-lensball"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-lensball"] footer {
  background: rgba(6, 8, 12, .6);
  border-top: 1px solid rgba(129, 140, 248, .1);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — large faint circle center (slow rotation) --- */
[data-theme="ext-new-lensball"] body::before {
  content: '';
  position: fixed;
  top: 50%;
  left: 50%;
  width: 500px;
  height: 500px;
  margin: -250px 0 0 -250px;
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
  opacity: .05;
  background:
    radial-gradient(circle at 40% 40%, rgba(129, 140, 248, .2) 0%, transparent 60%),
    conic-gradient(from 0deg,
      rgba(129, 140, 248, .15) 0deg, transparent 90deg,
      rgba(34, 211, 238, .15) 180deg, transparent 270deg,
      rgba(129, 140, 248, .15) 360deg);
  animation: lensball-rotate 30s linear infinite;
}

@keyframes lensball-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* --- Swatch --- */
[data-theme="ext-new-lensball"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #06080c, #818cf8);

}


/* ============================================================
   THEME 7/10  ext-new-lightpaint  (光绘 / Light Drawing)
   Bold & Modern — long-exposure light painting, light trails
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-lightpaint"] {
  --font-display:"Syncopate", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #020208;
  --bg-2: #060608;
  --bg-3: #08080c;
  --bg-4: #0a0a10;
  --text: #e8e8f0;
  --text-dim: #505060;
  --text-mid: #383848;
  --accent: #06b6d4;
  --glow: rgba(6, 182, 212, .3);
  --font-head: 'Rajdhani', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 0px;
  --transition: 0.6s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-lightpaint"][data-color="cyan"] {
  --accent: #06b6d4;
  --glow: rgba(6, 182, 212, .3);
}
[data-theme="ext-new-lightpaint"][data-color="magenta"] {
  --accent: #e879f9;
  --glow: rgba(232, 121, 249, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-lightpaint"] .cursor-dot,
[data-theme="ext-new-lightpaint"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-lightpaint"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-lightpaint"] .section,
  [data-theme="ext-new-lightpaint"] .section-head,
  [data-theme="ext-new-lightpaint"] .section-num,
  [data-theme="ext-new-lightpaint"] .section-title,
  [data-theme="ext-new-lightpaint"] .section-divider,
  [data-theme="ext-new-lightpaint"] .album,
  [data-theme="ext-new-lightpaint"] .album-item,
  [data-theme="ext-new-lightpaint"] .album-thumb,
  [data-theme="ext-new-lightpaint"] .album-meta,
  [data-theme="ext-new-lightpaint"] .contact-card,
  [data-theme="ext-new-lightpaint"] .contact-name,
  [data-theme="ext-new-lightpaint"] .contact-info,
  [data-theme="ext-new-lightpaint"] .btn,
  [data-theme="ext-new-lightpaint"] .btn-primary,
  [data-theme="ext-new-lightpaint"] .btn-secondary,
  [data-theme="ext-new-lightpaint"] footer,
  [data-theme="ext-new-lightpaint"] .footer-content,
  [data-theme="ext-new-lightpaint"] .about-name,
  [data-theme="ext-new-lightpaint"] .about-bio,
  [data-theme="ext-new-lightpaint"] .about-text,
  [data-theme="ext-new-lightpaint"] .hero,
  [data-theme="ext-new-lightpaint"] .hero-tag,
  [data-theme="ext-new-lightpaint"] .hero-title,
  [data-theme="ext-new-lightpaint"] .hero-sub,
  [data-theme="ext-new-lightpaint"] .skill-bar,
  [data-theme="ext-new-lightpaint"] .skill-fill,
  [data-theme="ext-new-lightpaint"] .skill-label,
  [data-theme="ext-new-lightpaint"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-lightpaint"] .navbar {
  background: rgba(2, 2, 8, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(6, 182, 212, .1);

}
[data-theme="ext-new-lightpaint"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 600;
  font-size: 1.2rem;
  letter-spacing: 1px;
  text-transform: uppercase;

}
[data-theme="ext-new-lightpaint"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-head);
  letter-spacing: .5px;
  transition: color var(--transition);

}
[data-theme="ext-new-lightpaint"] .nav-link:hover {
  color: var(--accent);
  
}

/* --- Section head — numbers with text-shadow glow --- */
[data-theme="ext-new-lightpaint"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-lightpaint"] .section-num {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--accent);
  
  letter-spacing: 1px;

}
[data-theme="ext-new-lightpaint"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  font-weight: 600;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 1px;


}

/* --- Section divider — thin line with glow --- */
[data-theme="ext-new-lightpaint"] .section-divider {
  position: relative;
  height: 1px;
  background: var(--text-mid);
  margin: 36px auto;
  width: 100px;
  box-shadow: 0 0 6px var(--glow);

}
[data-theme="ext-new-lightpaint"] .section-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
}

/* --- Album items — border draws on hover --- */
[data-theme="ext-new-lightpaint"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid transparent;
  transition: border-color var(--transition), box-shadow var(--transition);

}
[data-theme="ext-new-lightpaint"] .album-item:hover {
  border-color: var(--accent);
  box-shadow: 0 0 16px rgba(6, 182, 212, .12);
}
[data-theme="ext-new-lightpaint"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-lightpaint"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — thin border, light sweep on hover --- */
[data-theme="ext-new-lightpaint"] .btn {
  border-radius: var(--radius);
  padding: 10px 26px;
  font-family: var(--font-head);
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  border: 1px solid var(--text-mid);
  background: transparent;
  color: var(--text);
  position: relative;
  overflow: hidden;
  transition: border-color var(--transition), color var(--transition);

}
[data-theme="ext-new-lightpaint"] .btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, var(--glow), transparent);
  opacity: 0;
  transition: opacity .3s;
}
[data-theme="ext-new-lightpaint"] .btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
[data-theme="ext-new-lightpaint"] .btn:hover::after {
  opacity: 1;
  animation: lightpaint-sweep 1.5s linear;
}
[data-theme="ext-new-lightpaint"] .btn-primary {
  border-color: var(--accent);
  color: var(--accent);

}
[data-theme="ext-new-lightpaint"] .btn-secondary {
  color: var(--text-dim);
  border-color: var(--bg-4);

}
[data-theme="ext-new-lightpaint"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards --- */
[data-theme="ext-new-lightpaint"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid var(--bg-4);
  transition: border-color var(--transition), box-shadow var(--transition);

}
[data-theme="ext-new-lightpaint"] .contact-card:hover {
  border-color: var(--accent);
  box-shadow: 0 0 14px rgba(6, 182, 212, .1);
}
[data-theme="ext-new-lightpaint"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: .5px;

}
[data-theme="ext-new-lightpaint"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-lightpaint"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-lightpaint"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border: 1px solid var(--text-mid);
  color: var(--accent);
  font-size: .8rem;
  font-family: var(--font-head);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 16px;

}
[data-theme="ext-new-lightpaint"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 2px;


}
[data-theme="ext-new-lightpaint"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-lightpaint"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 600;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 1px;

}
[data-theme="ext-new-lightpaint"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — thin line with moving bright point --- */
[data-theme="ext-new-lightpaint"] .skill-bar {
  position: relative;
  height: 3px;
  background: var(--bg-4);
  border-radius: var(--radius);
  overflow: visible;

}
[data-theme="ext-new-lightpaint"] .skill-fill {
  height: 100%;
  background: var(--accent);
  box-shadow: 0 0 6px var(--glow);
  border-radius: var(--radius);

}
[data-theme="ext-new-lightpaint"] .skill-bar::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 4px;
  height: 4px;
  margin-top: -2px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
  animation: lightpaint-dot 3s linear infinite;
}
[data-theme="ext-new-lightpaint"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;
  font-family: var(--font-head);
  letter-spacing: .5px;

}

/* --- Footer --- */
[data-theme="ext-new-lightpaint"] footer {
  background: rgba(2, 2, 8, .6);
  border-top: 1px solid var(--bg-4);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — 2 diagonal light trails (slow animation) --- */
[data-theme="ext-new-lightpaint"] body::before {
  content: '';
  position: fixed;
  inset: -50%;
  z-index: 0;
  pointer-events: none;
  opacity: .05;
  background:
    linear-gradient(45deg, transparent 49.5%, var(--accent) 50%, transparent 50.5%),
    linear-gradient(-45deg, transparent 49.5%, var(--accent) 50%, transparent 50.5%);
  background-size: 200% 200%;
  animation: lightpaint-shift 20s ease-in-out infinite;
}

@keyframes lightpaint-sweep {
  from { left: -100%; }
  to { left: 100%; }
}

@keyframes lightpaint-dot {
  0% { left: 0%; }
  100% { left: 100%; }
}

@keyframes lightpaint-shift {
  0%, 100% { background-position: 0% 0%, 100% 100%; }
  50% { background-position: 30% 70%, 70% 30%; }
}

/* --- Swatch --- */
[data-theme="ext-new-lightpaint"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #020208, #06b6d4);

}


/* ============================================================
   THEME 8/10  ext-new-pinhole  (针孔 / Pinhole Soft)
   Fresh & Dreamy — soft focus, circular vignette, dreamy, organic
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-pinhole"] {
  --font-display:"Quicksand", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #0c0a08;
  --bg-2: #100e0a;
  --bg-3: #14120e;
  --bg-4: #181612;
  --text: #e8e0d0;
  --text-dim: #807060;
  --text-mid: #605040;
  --accent: #d4a544;
  --glow: rgba(212, 165, 68, .3);
  --font-head: 'Quicksand', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 20px;
  --transition: 0.6s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-pinhole"][data-color="warm"] {
  --accent: #d4a544;
  --glow: rgba(212, 165, 68, .3);
}
[data-theme="ext-new-pinhole"][data-color="soft"] {
  --accent: #a3a3a3;
  --glow: rgba(163, 163, 163, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-pinhole"] .cursor-dot,
[data-theme="ext-new-pinhole"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-pinhole"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-pinhole"] .section,
  [data-theme="ext-new-pinhole"] .section-head,
  [data-theme="ext-new-pinhole"] .section-num,
  [data-theme="ext-new-pinhole"] .section-title,
  [data-theme="ext-new-pinhole"] .section-divider,
  [data-theme="ext-new-pinhole"] .album,
  [data-theme="ext-new-pinhole"] .album-item,
  [data-theme="ext-new-pinhole"] .album-thumb,
  [data-theme="ext-new-pinhole"] .album-meta,
  [data-theme="ext-new-pinhole"] .contact-card,
  [data-theme="ext-new-pinhole"] .contact-name,
  [data-theme="ext-new-pinhole"] .contact-info,
  [data-theme="ext-new-pinhole"] .btn,
  [data-theme="ext-new-pinhole"] .btn-primary,
  [data-theme="ext-new-pinhole"] .btn-secondary,
  [data-theme="ext-new-pinhole"] footer,
  [data-theme="ext-new-pinhole"] .footer-content,
  [data-theme="ext-new-pinhole"] .about-name,
  [data-theme="ext-new-pinhole"] .about-bio,
  [data-theme="ext-new-pinhole"] .about-text,
  [data-theme="ext-new-pinhole"] .hero,
  [data-theme="ext-new-pinhole"] .hero-tag,
  [data-theme="ext-new-pinhole"] .hero-title,
  [data-theme="ext-new-pinhole"] .hero-sub,
  [data-theme="ext-new-pinhole"] .skill-bar,
  [data-theme="ext-new-pinhole"] .skill-fill,
  [data-theme="ext-new-pinhole"] .skill-label,
  [data-theme="ext-new-pinhole"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-pinhole"] .navbar {
  background: rgba(12, 10, 8, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(212, 165, 68, .1);

}
[data-theme="ext-new-pinhole"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 600;

}
[data-theme="ext-new-pinhole"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-pinhole"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head — numbers inside soft circles --- */
[data-theme="ext-new-pinhole"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-pinhole"] .section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(212, 165, 68, .1);
  font-family: var(--font-head);
  font-size: .85rem;
  color: var(--accent);

}
[data-theme="ext-new-pinhole"] .section-title {
  font-family: var(--font-head);
  font-size: 1.6rem;
  font-weight: 600;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);


}

/* --- Section divider — row of small dots --- */
[data-theme="ext-new-pinhole"] .section-divider {
  text-align: center;
  height: auto;
  background: none;
  margin: 36px 0;

}
[data-theme="ext-new-pinhole"] .section-divider::before {
  content: '\00B7 \00B7 \00B7 \00B7 \00B7';
  color: var(--accent);
  font-size: 18px;
  letter-spacing: 6px;
}

/* --- Album items — rounded corners, soft shadow, circular glow on hover --- */
[data-theme="ext-new-pinhole"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid var(--bg-4);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .15);
  transition: box-shadow var(--transition);

}
[data-theme="ext-new-pinhole"] .album-item:hover {
  box-shadow:
    0 0 30px rgba(212, 165, 68, .15),
    0 6px 20px rgba(0, 0, 0, .2);
}
[data-theme="ext-new-pinhole"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-pinhole"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — pill, soft glow on hover --- */
[data-theme="ext-new-pinhole"] .btn {
  border-radius: 999px;
  padding: 10px 28px;
  font-family: var(--font-body);
  font-weight: 500;
  border: 1px solid var(--text-mid);
  background: var(--bg-2);
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-pinhole"] .btn:hover {
  border-color: var(--accent);
  box-shadow: 0 0 18px rgba(212, 165, 68, .15);
}
[data-theme="ext-new-pinhole"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-new-pinhole"] .btn-primary:hover {
  box-shadow: 0 0 24px var(--glow);
}
[data-theme="ext-new-pinhole"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--bg-4);

}
[data-theme="ext-new-pinhole"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards — rounded, soft shadow, warm tint --- */
[data-theme="ext-new-pinhole"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid var(--bg-4);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
  transition: box-shadow var(--transition);

}
[data-theme="ext-new-pinhole"] .contact-card:hover {
  box-shadow: 0 0 24px rgba(212, 165, 68, .1), 0 6px 18px rgba(0, 0, 0, .15);
}
[data-theme="ext-new-pinhole"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;
  font-weight: 600;

}
[data-theme="ext-new-pinhole"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-pinhole"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-pinhole"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid var(--bg-4);
  color: var(--accent);
  font-size: .8rem;
  margin-bottom: 16px;

}
[data-theme="ext-new-pinhole"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.4rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);


}
[data-theme="ext-new-pinhole"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-pinhole"] .about-name {
  font-family: var(--font-head);
  font-size: 2rem;
  font-weight: 600;
  color: var(--text);

}
[data-theme="ext-new-pinhole"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — soft gradient, rounded --- */
[data-theme="ext-new-pinhole"] .skill-bar {
  height: 8px;
  background: var(--bg-4);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-new-pinhole"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #b08838, var(--accent));
  border-radius: 999px;

}
[data-theme="ext-new-pinhole"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-pinhole"] footer {
  background: rgba(12, 10, 8, .6);
  border-top: 1px solid var(--bg-4);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — circular vignette (static) --- */
[data-theme="ext-new-pinhole"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .08;
  background: radial-gradient(ellipse at center,
    transparent 30%, rgba(0, 0, 0, .6) 100%);
}

/* --- Swatch --- */
[data-theme="ext-new-pinhole"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #0c0a08, #d4a544);

}


/* ============================================================
   THEME 9/10  ext-new-fisheye  (鱼眼 / Fisheye Lens)
   Bold & Modern — ultra-wide, barrel distortion, circular framing
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-fisheye"] {
  --font-display:"Barlow Condensed", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #080a0c;
  --bg-2: #0c0e12;
  --bg-3: #101418;
  --bg-4: #141820;
  --text: #e0e4e8;
  --text-dim: #5a7080;
  --text-mid: #485860;
  --accent: #06b6d4;
  --glow: rgba(6, 182, 212, .3);
  --font-head: 'Barlow Condensed', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 50px;
  --transition: 0.4s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-fisheye"][data-color="aqua"] {
  --accent: #06b6d4;
  --glow: rgba(6, 182, 212, .3);
}
[data-theme="ext-new-fisheye"][data-color="neon"] {
  --accent: #10b981;
  --glow: rgba(16, 185, 129, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-fisheye"] .cursor-dot,
[data-theme="ext-new-fisheye"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-fisheye"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-fisheye"] .section,
  [data-theme="ext-new-fisheye"] .section-head,
  [data-theme="ext-new-fisheye"] .section-num,
  [data-theme="ext-new-fisheye"] .section-title,
  [data-theme="ext-new-fisheye"] .section-divider,
  [data-theme="ext-new-fisheye"] .album,
  [data-theme="ext-new-fisheye"] .album-item,
  [data-theme="ext-new-fisheye"] .album-thumb,
  [data-theme="ext-new-fisheye"] .album-meta,
  [data-theme="ext-new-fisheye"] .contact-card,
  [data-theme="ext-new-fisheye"] .contact-name,
  [data-theme="ext-new-fisheye"] .contact-info,
  [data-theme="ext-new-fisheye"] .btn,
  [data-theme="ext-new-fisheye"] .btn-primary,
  [data-theme="ext-new-fisheye"] .btn-secondary,
  [data-theme="ext-new-fisheye"] footer,
  [data-theme="ext-new-fisheye"] .footer-content,
  [data-theme="ext-new-fisheye"] .about-name,
  [data-theme="ext-new-fisheye"] .about-bio,
  [data-theme="ext-new-fisheye"] .about-text,
  [data-theme="ext-new-fisheye"] .hero,
  [data-theme="ext-new-fisheye"] .hero-tag,
  [data-theme="ext-new-fisheye"] .hero-title,
  [data-theme="ext-new-fisheye"] .hero-sub,
  [data-theme="ext-new-fisheye"] .skill-bar,
  [data-theme="ext-new-fisheye"] .skill-fill,
  [data-theme="ext-new-fisheye"] .skill-label,
  [data-theme="ext-new-fisheye"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-fisheye"] .navbar {
  background: rgba(8, 10, 12, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(6, 182, 212, .1);

}
[data-theme="ext-new-fisheye"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-weight: 600;
  font-size: 1.3rem;
  text-transform: uppercase;
  letter-spacing: 1px;

}
[data-theme="ext-new-fisheye"] .nav-link {
  color: var(--text-dim);
  font-family: var(--font-head);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  transition: color var(--transition);

}
[data-theme="ext-new-fisheye"] .nav-link:hover {
  color: var(--accent);
}

/* --- Section head — numbers inside circles --- */
[data-theme="ext-new-fisheye"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-fisheye"] .section-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--accent);
  border-radius: 50%;
  font-family: var(--font-head);
  font-size: .85rem;
  color: var(--accent);

}
[data-theme="ext-new-fisheye"] .section-title {
  font-family: var(--font-head);
  font-size: 1.7rem;
  font-weight: 600;
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 1px;


}

/* --- Section divider — concentric circle motif --- */
[data-theme="ext-new-fisheye"] .section-divider {
  text-align: center;
  height: auto;
  background: none;
  margin: 36px 0;

}
[data-theme="ext-new-fisheye"] .section-divider::before {
  content: '\25CE';
  color: var(--accent);
  font-size: 16px;
}

/* --- Album items — very rounded, barrel distortion on hover --- */
[data-theme="ext-new-fisheye"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid var(--bg-4);
  transition: transform var(--transition), border-color var(--transition);

}
[data-theme="ext-new-fisheye"] .album-item:hover {
  transform: scaleX(1.03) scaleY(0.97);
  border-color: var(--accent);
}
[data-theme="ext-new-fisheye"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-fisheye"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — pill-shaped --- */
[data-theme="ext-new-fisheye"] .btn {
  border-radius: 999px;
  padding: 10px 28px;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid var(--text-mid);
  background: transparent;
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-fisheye"] .btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
[data-theme="ext-new-fisheye"] .btn-primary {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);

}
[data-theme="ext-new-fisheye"] .btn-primary:hover {
  color: var(--bg);
}
[data-theme="ext-new-fisheye"] .btn-secondary {
  color: var(--text-dim);
  border-color: var(--bg-4);

}
[data-theme="ext-new-fisheye"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards — curved corners (50px 50px 4px 4px) --- */
[data-theme="ext-new-fisheye"] .contact-card {
  background: var(--bg-2);
  border-radius: 50px 50px 4px 4px;
  padding: 32px 24px 24px;
  border: 1px solid var(--bg-4);
  transition: border-color var(--transition);

}
[data-theme="ext-new-fisheye"] .contact-card:hover {
  border-color: var(--accent);
}
[data-theme="ext-new-fisheye"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.3rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .5px;

}
[data-theme="ext-new-fisheye"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-fisheye"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-fisheye"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid var(--bg-4);
  color: var(--accent);
  font-size: .8rem;
  font-family: var(--font-head);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 16px;

}
[data-theme="ext-new-fisheye"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.6rem;
  font-weight: 700;
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 1px;


}
[data-theme="ext-new-fisheye"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-fisheye"] .about-name {
  font-family: var(--font-head);
  font-size: 2.2rem;
  font-weight: 600;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 1px;

}
[data-theme="ext-new-fisheye"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — curved fill --- */
[data-theme="ext-new-fisheye"] .skill-bar {
  height: 6px;
  background: var(--bg-4);
  border-radius: 999px;
  overflow: hidden;

}
[data-theme="ext-new-fisheye"] .skill-fill {
  height: 100%;
  background: var(--accent);
  border-radius: 999px;

}
[data-theme="ext-new-fisheye"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;
  font-family: var(--font-head);
  text-transform: uppercase;
  letter-spacing: .5px;

}

/* --- Footer --- */
[data-theme="ext-new-fisheye"] footer {
  background: rgba(8, 10, 12, .6);
  border-top: 1px solid var(--bg-4);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — concentric circles (static) --- */
[data-theme="ext-new-fisheye"] body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .03;
  background: repeating-radial-gradient(circle at 50% 50%,
    rgba(6, 182, 212, .15) 0, rgba(6, 182, 212, .15) 1px,
    transparent 1px, transparent 60px);
}

/* --- Swatch --- */
[data-theme="ext-new-fisheye"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #080a0c, #06b6d4);

}


/* ============================================================
   THEME 10/10  ext-new-infrared  (红外 / Infrared)
   Bold & Modern — false color, heat signature, otherworldly
   ============================================================ */

/* --- Variables --- */
[data-theme="ext-new-infrared"] {
  --font-display:"Audiowide", sans-serif;
  --font-body:"Inter", sans-serif;

  --bg: #08060a;
  --bg-2: #0c0810;
  --bg-3: #100a14;
  --bg-4: #140c18;
  --text: #f0e0e8;
  --text-dim: #a06880;
  --text-mid: #804860;
  --accent: #e879f9;
  --glow: rgba(232, 121, 249, .3);
  --font-head: 'Audiowide', sans-serif;
  --font-body: 'Inter', sans-serif;
  --radius: 8px;
  --transition: 0.4s ease;
}

/* --- Color variants --- */
[data-theme="ext-new-infrared"][data-color="thermal"] {
  --accent: #e879f9;
  --glow: rgba(232, 121, 249, .3);
}
[data-theme="ext-new-infrared"][data-color="infrared"] {
  --accent: #ec4899;
  --glow: rgba(236, 72, 153, .3);
}

/* --- Cursor reset --- */
[data-theme="ext-new-infrared"] .cursor-dot,
[data-theme="ext-new-infrared"] .cursor-ring {
  display: none !important;

}

/* --- Body --- */
[data-theme="ext-new-infrared"] body {
  margin: 0;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 50%, var(--bg-3) 100%);
  color: var(--text);
  font-family: var(--font-body);
  min-height: 100vh;
}

/* --- Content z-index --- */
  [data-theme="ext-new-infrared"] .section,
  [data-theme="ext-new-infrared"] .section-head,
  [data-theme="ext-new-infrared"] .section-num,
  [data-theme="ext-new-infrared"] .section-title,
  [data-theme="ext-new-infrared"] .section-divider,
  [data-theme="ext-new-infrared"] .album,
  [data-theme="ext-new-infrared"] .album-item,
  [data-theme="ext-new-infrared"] .album-thumb,
  [data-theme="ext-new-infrared"] .album-meta,
  [data-theme="ext-new-infrared"] .contact-card,
  [data-theme="ext-new-infrared"] .contact-name,
  [data-theme="ext-new-infrared"] .contact-info,
  [data-theme="ext-new-infrared"] .btn,
  [data-theme="ext-new-infrared"] .btn-primary,
  [data-theme="ext-new-infrared"] .btn-secondary,
  [data-theme="ext-new-infrared"] footer,
  [data-theme="ext-new-infrared"] .footer-content,
  [data-theme="ext-new-infrared"] .about-name,
  [data-theme="ext-new-infrared"] .about-bio,
  [data-theme="ext-new-infrared"] .about-text,
  [data-theme="ext-new-infrared"] .hero,
  [data-theme="ext-new-infrared"] .hero-tag,
  [data-theme="ext-new-infrared"] .hero-title,
  [data-theme="ext-new-infrared"] .hero-sub,
  [data-theme="ext-new-infrared"] .skill-bar,
  [data-theme="ext-new-infrared"] .skill-fill,
  [data-theme="ext-new-infrared"] .skill-label,
  [data-theme="ext-new-infrared"] .theme-swatch {
    position: relative;
    z-index: 1;
  
}

/* --- Navbar --- */
[data-theme="ext-new-infrared"] .navbar {
  background: rgba(8, 6, 10, .88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(232, 121, 249, .12);

}
[data-theme="ext-new-infrared"] .nav-brand {
  font-family: var(--font-head);
  color: var(--accent);
  font-size: 1.1rem;
  letter-spacing: 1px;

}
[data-theme="ext-new-infrared"] .nav-link {
  color: var(--text-dim);
  transition: color var(--transition);

}
[data-theme="ext-new-infrared"] .nav-link:hover {
  color: var(--accent);
  
}

/* --- Section head — numbers with pink text-shadow --- */
[data-theme="ext-new-infrared"] .section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;

}
[data-theme="ext-new-infrared"] .section-num {
  font-family: var(--font-head);
  font-size: 1rem;
  color: var(--accent);
  

}
[data-theme="ext-new-infrared"] .section-title {
  font-family: var(--font-head);
  font-size: 1.5rem;
  color: var(--text);
  text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);

}

/* --- Section divider — thermal dot --- */
[data-theme="ext-new-infrared"] .section-divider {
  text-align: center;
  height: auto;
  background: none;
  margin: 36px 0;

}
[data-theme="ext-new-infrared"] .section-divider::before {
  content: '\25C9';
  color: var(--accent);
  font-size: 14px;
  
}

/* --- Album items — thermal border, pink glow on hover --- */
[data-theme="ext-new-infrared"] .album-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-2);
  border: 1px solid;
  border-image: linear-gradient(135deg, #e879f9, #a855f7) 1;
  transition: box-shadow var(--transition);

}
[data-theme="ext-new-infrared"] .album-item:hover {
  box-shadow: 0 0 20px rgba(232, 121, 249, .2);
}
[data-theme="ext-new-infrared"] .album-thumb {
  overflow: hidden;

}
[data-theme="ext-new-infrared"] .album-meta {
  padding: 12px 14px;

}

/* --- Buttons — thermal gradient background --- */
[data-theme="ext-new-infrared"] .btn {
  border-radius: var(--radius);
  padding: 10px 26px;
  font-family: var(--font-body);
  font-weight: 500;
  border: 1px solid rgba(232, 121, 249, .3);
  background: linear-gradient(135deg, rgba(232, 121, 249, .12), rgba(168, 85, 247, .12));
  color: var(--text);
  transition: all var(--transition);

}
[data-theme="ext-new-infrared"] .btn:hover {
  background: linear-gradient(135deg, rgba(232, 121, 249, .22), rgba(168, 85, 247, .22));
  box-shadow: 0 0 16px rgba(232, 121, 249, .2);
}
[data-theme="ext-new-infrared"] .btn-primary {
  background: linear-gradient(135deg, #e879f9, #a855f7);
  color: #fff;
  border-color: transparent;

}
[data-theme="ext-new-infrared"] .btn-primary:hover {
  box-shadow: 0 0 22px var(--glow);
}
[data-theme="ext-new-infrared"] .btn-secondary {
  background: transparent;
  color: var(--text-dim);
  border-color: var(--text-mid);

}
[data-theme="ext-new-infrared"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
}

/* --- Contact cards — pink inner glow --- */
[data-theme="ext-new-infrared"] .contact-card {
  background: var(--bg-2);
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid var(--bg-4);
  box-shadow: inset 0 0 20px rgba(232, 121, 249, .05);
  transition: box-shadow var(--transition), border-color var(--transition);

}
[data-theme="ext-new-infrared"] .contact-card:hover {
  border-color: rgba(232, 121, 249, .3);
  box-shadow: inset 0 0 30px rgba(232, 121, 249, .08);
}
[data-theme="ext-new-infrared"] .contact-name {
  font-family: var(--font-head);
  color: var(--text);
  font-size: 1.2rem;

}
[data-theme="ext-new-infrared"] .contact-info {
  color: var(--text-dim);
  font-size: .9rem;

}

/* --- Hero --- */
[data-theme="ext-new-infrared"] .hero {
  padding: 80px 20px 60px;
  text-align: center;

}
[data-theme="ext-new-infrared"] .hero-tag {
  display: inline-block;
  padding: 6px 18px;
  border-radius: var(--radius);
  border: 1px solid rgba(232, 121, 249, .3);
  background: rgba(232, 121, 249, .06);
  color: var(--accent);
  font-size: .8rem;
  margin-bottom: 16px;

}
[data-theme="ext-new-infrared"] .hero-title {
  font-family: var(--font-head);
  font-size: 2.2rem;
  color: var(--text);
  text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);

}
[data-theme="ext-new-infrared"] .hero-sub {
  color: var(--text-dim);
  font-size: 1rem;

}

/* --- About --- */
[data-theme="ext-new-infrared"] .about-name {
  font-family: var(--font-head);
  font-size: 1.8rem;
  color: var(--text);

}
[data-theme="ext-new-infrared"] .about-text {
  color: var(--text-dim);
  line-height: 1.7;

}

/* --- Skill bars — heat gradient (blue → pink → red) --- */
[data-theme="ext-new-infrared"] .skill-bar {
  height: 6px;
  background: var(--bg-4);
  border-radius: var(--radius);
  overflow: hidden;

}
[data-theme="ext-new-infrared"] .skill-fill {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6, #e879f9, #ef4444);
  border-radius: var(--radius);

}
[data-theme="ext-new-infrared"] .skill-label {
  color: var(--text-dim);
  font-size: .85rem;

}

/* --- Footer --- */
[data-theme="ext-new-infrared"] footer {
  background: rgba(8, 6, 10, .6);
  border-top: 1px solid rgba(232, 121, 249, .1);
  padding: 32px 20px;
  text-align: center;
  color: var(--text-dim);
}

/* --- Subtle background — heat-map conic gradient (slow rotation) --- */
[data-theme="ext-new-infrared"] body::before {
  content: '';
  position: fixed;
  top: 50%;
  left: 50%;
  width: 120vw;
  height: 120vw;
  margin: -60vw 0 0 -60vw;
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
  opacity: .05;
  background: conic-gradient(from 0deg,
    rgba(232, 121, 249, .2) 0deg,
    rgba(236, 72, 153, .2) 90deg,
    rgba(168, 85, 247, .2) 180deg,
    rgba(232, 121, 249, .2) 270deg,
    rgba(232, 121, 249, .2) 360deg);
  animation: infrared-rotate 25s linear infinite;
}

@keyframes infrared-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* --- Swatch --- */
[data-theme="ext-new-infrared"] .theme-swatch {
  width: 100%;
  height: 60px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #08060a, #e879f9);

}




/* ============================================================
   THEME: ext-girl-cherry  (樱花少女 / Cherry Blossom)
   ============================================================ */

[data-theme="ext-girl-cherry"]{
  --bg:#1a0a12;--bg-2:#241020;--bg-3:#34182e;--bg-4:#44203c;
  --text:#fff0f5;--text-dim:#d4a0b8;--text-mid:#a8708a;
  --accent:#ff6b9d;--accent-glow:rgba(255,107,157,0.4);--white:#fff0f5;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#1a0a12ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Pacifico',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#1a0a12;
}
[data-theme="ext-girl-cherry"] body{background:#1a0a12;color:#fff0f5;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-girl-cherry"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 20% 30%,rgba(255,107,157,0.4) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(255,107,157,0.4) 0%,transparent 35%);
}
[data-theme="ext-girl-cherry"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-girl-cherry"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-girl-cherry"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-girl-cherry"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-girl-cherry"] .nav-link:hover::after{width:100%;}
[data-theme="ext-girl-cherry"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-girl-cherry"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-girl-cherry"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-girl-cherry"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-girl-cherry"] .hero > .hero-content,
[data-theme="ext-girl-cherry"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-girl-cherry"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-girl-cherry"] .hero-title{font-family:'Pacifico',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-girl-cherry"] .hero-tagline{font-family:'Quicksand',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-girl-cherry"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-girl-cherry"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_girl_cherry_scroll 2.2s ease-in-out infinite;}
@keyframes ext_girl_cherry_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-girl-cherry"] .section-title{font-family:'Pacifico',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-girl-cherry"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-girl-cherry"] .about-img-wrapper{border-radius:50% 50% 60% 40% / 40% 60% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-girl-cherry"] .about-img-wrapper:hover{border-radius:60% 40% 50% 50% / 50% 50% 40% 60%;}
[data-theme="ext-girl-cherry"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-girl-cherry"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-girl-cherry"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-girl-cherry"] .stat-num{font-family:'Pacifico',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-girl-cherry"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-girl-cherry"] .album-item{position:relative;border-radius:40px 10px 40px 10px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-girl-cherry"] .album-item:nth-child(even){border-radius:10px 40px 10px 40px;}
[data-theme="ext-girl-cherry"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-girl-cherry"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-girl-cherry"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-girl-cherry"] .album-title{font-family:'Pacifico',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-girl-cherry"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-girl-cherry"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-girl-cherry"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-girl-cherry"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-girl-cherry"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-girl-cherry"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-girl-cherry"] .contact-card:nth-child(2){border-radius:50px 15px 50px 15px;}
[data-theme="ext-girl-cherry"] .contact-card:nth-child(3){border-radius:15px 50px 15px 50px;}
[data-theme="ext-girl-cherry"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-girl-cherry"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 8% 8% 0 0;}
[data-theme="ext-girl-cherry"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-girl-cherry"] .footer-logo span{color:var(--accent);}
[data-theme="ext-girl-cherry"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-girl-cherry"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-girl-cherry"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-girl-cherry"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-girl-cherry"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-girl-cherry"] .stat-item{border-radius:40px 10px 40px 10px;transition:var(--transition);}
[data-theme="ext-girl-cherry"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-girl-cherry"] .nav-toggle span{background:var(--text);}
[data-theme="ext-girl-cherry"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-girl-cherry"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-girl-cherry"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-girl-cherry"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-girl-cherry"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-girl-cherry"] a{color:var(--accent);}
[data-theme="ext-girl-cherry"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-girl-cherry"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-girl-strawberry  (草莓牛奶 / Strawberry Milk)
   ============================================================ */

[data-theme="ext-girl-strawberry"]{
  --bg:#1a0808;--bg-2:#241010;--bg-3:#341818;--bg-4:#442020;
  --text:#fff5f0;--text-dim:#d4a090;--text-mid:#a87060;
  --accent:#ff4466;--accent-glow:rgba(255,68,102,0.4);--white:#fff5f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#1a0808ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fredoka',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#1a0808;
}
[data-theme="ext-girl-strawberry"] body{background:#1a0808;color:#fff5f0;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-girl-strawberry"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 20%,rgba(255,68,102,0.4) 0%,transparent 30%),radial-gradient(circle at 70% 80%,rgba(255,68,102,0.4) 0%,transparent 25%);
}
[data-theme="ext-girl-strawberry"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-girl-strawberry"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-girl-strawberry"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .nav-link:hover::after{width:100%;}
[data-theme="ext-girl-strawberry"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-girl-strawberry"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-girl-strawberry"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-girl-strawberry"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-girl-strawberry"] .hero > .hero-content,
[data-theme="ext-girl-strawberry"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-girl-strawberry"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-girl-strawberry"] .hero-title{font-family:'Fredoka',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-girl-strawberry"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-girl-strawberry"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-girl-strawberry"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_girl_strawberry_scroll 2.2s ease-in-out infinite;}
@keyframes ext_girl_strawberry_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-girl-strawberry"] .section-title{font-family:'Fredoka',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-girl-strawberry"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-girl-strawberry"] .about-img-wrapper{border-radius:50% 50% 70% 30% / 30% 70% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-girl-strawberry"] .about-img-wrapper:hover{border-radius:50% 50% 30% 70% / 70% 30% 50% 50%;}
[data-theme="ext-girl-strawberry"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-girl-strawberry"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-girl-strawberry"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-girl-strawberry"] .stat-num{font-family:'Fredoka',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-girl-strawberry"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-girl-strawberry"] .album-item{position:relative;border-radius:20px 45px 20px 45px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .album-item:nth-child(even){border-radius:45px 20px 45px 20px;}
[data-theme="ext-girl-strawberry"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-girl-strawberry"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-girl-strawberry"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-girl-strawberry"] .album-title{font-family:'Fredoka',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-girl-strawberry"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-girl-strawberry"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-girl-strawberry"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-girl-strawberry"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-girl-strawberry"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .contact-card:nth-child(2){border-radius:25px 55px 25px 55px;}
[data-theme="ext-girl-strawberry"] .contact-card:nth-child(3){border-radius:55px 25px 55px 25px;}
[data-theme="ext-girl-strawberry"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-girl-strawberry"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 6% 10% 0 0;}
[data-theme="ext-girl-strawberry"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-girl-strawberry"] .footer-logo span{color:var(--accent);}
[data-theme="ext-girl-strawberry"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-girl-strawberry"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-girl-strawberry"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-girl-strawberry"] .stat-item{border-radius:20px 45px 20px 45px;transition:var(--transition);}
[data-theme="ext-girl-strawberry"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-girl-strawberry"] .nav-toggle span{background:var(--text);}
[data-theme="ext-girl-strawberry"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-girl-strawberry"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-girl-strawberry"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-girl-strawberry"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-girl-strawberry"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-girl-strawberry"] a{color:var(--accent);}
[data-theme="ext-girl-strawberry"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-girl-strawberry"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-girl-cotton  (棉花糖 / Cotton Candy)
   ============================================================ */

[data-theme="ext-girl-cotton"]{
  --bg:#0e0a14;--bg-2:#181020;--bg-3:#221830;--bg-4:#2c2040;
  --text:#f5f0ff;--text-dim:#a8a0c8;--text-mid:#8078a0;
  --accent:#c084fc;--accent-glow:rgba(192,132,252,0.4);--white:#f5f0ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0e0a14ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Caveat',serif;--font-body:'Comfortaa',sans-serif;
  --c-on-accent:#0e0a14;
}
[data-theme="ext-girl-cotton"] body{background:#0e0a14;color:#f5f0ff;font-family:'Comfortaa',sans-serif;cursor:none;}
[data-theme="ext-girl-cotton"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(ellipse at 50% 0%,rgba(192,132,252,0.4) 0%,transparent 50%);
}
[data-theme="ext-girl-cotton"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-girl-cotton"] .nav-link{color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-girl-cotton"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-girl-cotton"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-girl-cotton"] .nav-link:hover::after{width:100%;}
[data-theme="ext-girl-cotton"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-girl-cotton"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-girl-cotton"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-girl-cotton"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-girl-cotton"] .hero > .hero-content,
[data-theme="ext-girl-cotton"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-girl-cotton"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-girl-cotton"] .hero-title{font-family:'Caveat',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-girl-cotton"] .hero-tagline{font-family:'Comfortaa',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-girl-cotton"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-girl-cotton"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_girl_cotton_scroll 2.2s ease-in-out infinite;}
@keyframes ext_girl_cotton_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-girl-cotton"] .section-title{font-family:'Caveat',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-girl-cotton"] .section-subtitle{font-family:'Comfortaa',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-girl-cotton"] .about-img-wrapper{border-radius:55% 45% 50% 50% / 45% 55% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-girl-cotton"] .about-img-wrapper:hover{border-radius:45% 55% 50% 50% / 55% 45% 50% 50%;}
[data-theme="ext-girl-cotton"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-girl-cotton"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-girl-cotton"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-girl-cotton"] .stat-num{font-family:'Caveat',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-girl-cotton"] .stat-label{font-family:'Comfortaa',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-girl-cotton"] .album-item{position:relative;border-radius:35px 25px 30px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-girl-cotton"] .album-item:nth-child(even){border-radius:40px 30px 25px 35px;}
[data-theme="ext-girl-cotton"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-girl-cotton"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-girl-cotton"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-girl-cotton"] .album-title{font-family:'Caveat',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-girl-cotton"] .album-meta{font-family:'Comfortaa',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-girl-cotton"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Comfortaa',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-girl-cotton"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-girl-cotton"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Comfortaa',sans-serif;transition:var(--transition);}
[data-theme="ext-girl-cotton"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-girl-cotton"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-girl-cotton"] .contact-card:nth-child(2){border-radius:45px 30px 40px 50px;}
[data-theme="ext-girl-cotton"] .contact-card:nth-child(3){border-radius:50px 40px 30px 45px;}
[data-theme="ext-girl-cotton"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-girl-cotton"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:55% 45% 0 0 / 7% 9% 0 0;}
[data-theme="ext-girl-cotton"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-girl-cotton"] .footer-logo span{color:var(--accent);}
[data-theme="ext-girl-cotton"] .footer-links a{color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-girl-cotton"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-girl-cotton"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-girl-cotton"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-girl-cotton"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-girl-cotton"] .stat-item{border-radius:35px 25px 35px 25px;transition:var(--transition);}
[data-theme="ext-girl-cotton"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-girl-cotton"] .nav-toggle span{background:var(--text);}
[data-theme="ext-girl-cotton"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-girl-cotton"] .mobile-menu a{color:var(--text-dim);font-family:'Comfortaa',sans-serif;}
[data-theme="ext-girl-cotton"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-girl-cotton"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-girl-cotton"] .ts-name{color:var(--text);font-family:'Comfortaa',sans-serif;}
[data-theme="ext-girl-cotton"] a{color:var(--accent);}
[data-theme="ext-girl-cotton"] .eyebrow{color:var(--accent);font-family:'Comfortaa',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-girl-cotton"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-girl-bow  (蝴蝶结少女 / Ribbon Bow)
   ============================================================ */

[data-theme="ext-girl-bow"]{
  --bg:#140a10;--bg-2:#1e1018;--bg-3:#2e1828;--bg-4:#3e2038;
  --text:#fff0f5;--text-dim:#c890a0;--text-mid:#9c6878;
  --accent:#e91e63;--accent-glow:rgba(233,30,99,0.4);--white:#fff0f5;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#140a10ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Gloria Hallelujah',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#140a10;
}
[data-theme="ext-girl-bow"] body{background:#140a10;color:#fff0f5;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-girl-bow"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(233,30,99,0.4) 0%,transparent 40%);
}
[data-theme="ext-girl-bow"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-girl-bow"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-girl-bow"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-girl-bow"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-girl-bow"] .nav-link:hover::after{width:100%;}
[data-theme="ext-girl-bow"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-girl-bow"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-girl-bow"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-girl-bow"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-girl-bow"] .hero > .hero-content,
[data-theme="ext-girl-bow"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-girl-bow"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-girl-bow"] .hero-title{font-family:'Gloria Hallelujah',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-girl-bow"] .hero-tagline{font-family:'Quicksand',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-girl-bow"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-girl-bow"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_girl_bow_scroll 2.2s ease-in-out infinite;}
@keyframes ext_girl_bow_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-girl-bow"] .section-title{font-family:'Gloria Hallelujah',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-girl-bow"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-girl-bow"] .about-img-wrapper{border-radius:30% 70% 30% 70% / 50% 50% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-girl-bow"] .about-img-wrapper:hover{border-radius:70% 30% 70% 30% / 50% 50% 50% 50%;}
[data-theme="ext-girl-bow"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-girl-bow"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-girl-bow"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-girl-bow"] .stat-num{font-family:'Gloria Hallelujah',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-girl-bow"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-girl-bow"] .album-item{position:relative;border-radius:15px 50px 15px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-girl-bow"] .album-item:nth-child(even){border-radius:50px 15px 50px 15px;}
[data-theme="ext-girl-bow"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-girl-bow"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-girl-bow"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-girl-bow"] .album-title{font-family:'Gloria Hallelujah',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-girl-bow"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-girl-bow"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-girl-bow"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-girl-bow"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-girl-bow"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-girl-bow"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-girl-bow"] .contact-card:nth-child(2){border-radius:20px 60px 20px 60px;}
[data-theme="ext-girl-bow"] .contact-card:nth-child(3){border-radius:60px 20px 60px 20px;}
[data-theme="ext-girl-bow"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-girl-bow"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 12% 0 0;}
[data-theme="ext-girl-bow"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-girl-bow"] .footer-logo span{color:var(--accent);}
[data-theme="ext-girl-bow"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-girl-bow"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-girl-bow"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-girl-bow"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-girl-bow"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-girl-bow"] .stat-item{border-radius:15px 50px 15px 50px;transition:var(--transition);}
[data-theme="ext-girl-bow"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-girl-bow"] .nav-toggle span{background:var(--text);}
[data-theme="ext-girl-bow"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-girl-bow"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-girl-bow"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-girl-bow"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-girl-bow"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-girl-bow"] a{color:var(--accent);}
[data-theme="ext-girl-bow"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-girl-bow"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-lady-rose  (玫瑰庄园 / Rose Garden)
   ============================================================ */

[data-theme="ext-lady-rose"]{
  --bg:#14080c;--bg-2:#1e1014;--bg-3:#2e1820;--bg-4:#3e2028;
  --text:#fff0f0;--text-dim:#c89898;--text-mid:#9c7070;
  --accent:#c62828;--accent-glow:rgba(198,40,40,0.4);--white:#fff0f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#14080cee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#14080c;
}
[data-theme="ext-lady-rose"] body{background:#14080c;color:#fff0f0;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-lady-rose"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 25% 40%,rgba(198,40,40,0.4) 0%,transparent 35%),radial-gradient(circle at 75% 60%,rgba(198,40,40,0.4) 0%,transparent 30%);
}
[data-theme="ext-lady-rose"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-lady-rose"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-lady-rose"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-lady-rose"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-lady-rose"] .nav-link:hover::after{width:100%;}
[data-theme="ext-lady-rose"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-lady-rose"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-lady-rose"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-lady-rose"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-lady-rose"] .hero > .hero-content,
[data-theme="ext-lady-rose"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-lady-rose"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-lady-rose"] .hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-lady-rose"] .hero-tagline{font-family:'Lora',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-lady-rose"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-lady-rose"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_lady_rose_scroll 2.2s ease-in-out infinite;}
@keyframes ext_lady_rose_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-lady-rose"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-lady-rose"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-lady-rose"] .about-img-wrapper{border-radius:60% 40% 55% 45% / 45% 55% 40% 60%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-lady-rose"] .about-img-wrapper:hover{border-radius:40% 60% 45% 55% / 55% 45% 60% 40%;}
[data-theme="ext-lady-rose"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-lady-rose"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-lady-rose"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-lady-rose"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-lady-rose"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-lady-rose"] .album-item{position:relative;border-radius:45px 20px 50px 25px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-lady-rose"] .album-item:nth-child(even){border-radius:25px 50px 20px 45px;}
[data-theme="ext-lady-rose"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-lady-rose"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-lady-rose"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-lady-rose"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-lady-rose"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-lady-rose"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-lady-rose"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-lady-rose"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-lady-rose"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-lady-rose"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-lady-rose"] .contact-card:nth-child(2){border-radius:55px 25px 60px 30px;}
[data-theme="ext-lady-rose"] .contact-card:nth-child(3){border-radius:30px 60px 25px 55px;}
[data-theme="ext-lady-rose"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-lady-rose"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:40% 60% 0 0 / 6% 10% 0 0;}
[data-theme="ext-lady-rose"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-lady-rose"] .footer-logo span{color:var(--accent);}
[data-theme="ext-lady-rose"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-lady-rose"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-lady-rose"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-lady-rose"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-lady-rose"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-lady-rose"] .stat-item{border-radius:45px 20px 45px 20px;transition:var(--transition);}
[data-theme="ext-lady-rose"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-lady-rose"] .nav-toggle span{background:var(--text);}
[data-theme="ext-lady-rose"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-lady-rose"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-lady-rose"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-lady-rose"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-lady-rose"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-lady-rose"] a{color:var(--accent);}
[data-theme="ext-lady-rose"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-lady-rose"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-lady-pearl  (珍珠项链 / Pearl Necklace)
   ============================================================ */

[data-theme="ext-lady-pearl"]{
  --bg:#0e0e0c;--bg-2:#181814;--bg-3:#222218;--bg-4:#2c2c20;
  --text:#fffef8;--text-dim:#c8c0a8;--text-mid:#9c9478;
  --accent:#e8dcc0;--accent-glow:rgba(232,220,192,0.4);--white:#fffef8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0e0e0cee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'Spectral',sans-serif;
  --c-on-accent:#0e0e0c;
}
[data-theme="ext-lady-pearl"] body{background:#0e0e0c;color:#fffef8;font-family:'Spectral',sans-serif;cursor:none;}
[data-theme="ext-lady-pearl"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(232,220,192,0.4) 0%,transparent 50%);
}
[data-theme="ext-lady-pearl"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-lady-pearl"] .nav-link{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-lady-pearl"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-lady-pearl"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-lady-pearl"] .nav-link:hover::after{width:100%;}
[data-theme="ext-lady-pearl"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-lady-pearl"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-lady-pearl"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-lady-pearl"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-lady-pearl"] .hero > .hero-content,
[data-theme="ext-lady-pearl"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-lady-pearl"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-lady-pearl"] .hero-title{font-family:'Marcellus',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-lady-pearl"] .hero-tagline{font-family:'Spectral',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-lady-pearl"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-lady-pearl"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_lady_pearl_scroll 2.2s ease-in-out infinite;}
@keyframes ext_lady_pearl_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-lady-pearl"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-lady-pearl"] .section-subtitle{font-family:'Spectral',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-lady-pearl"] .about-img-wrapper{border-radius:50% 50% 50% 50% / 50% 50% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-lady-pearl"] .about-img-wrapper:hover{border-radius:48% 52% 48% 52% / 52% 48% 52% 48%;}
[data-theme="ext-lady-pearl"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-lady-pearl"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-lady-pearl"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-lady-pearl"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-lady-pearl"] .stat-label{font-family:'Spectral',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-lady-pearl"] .album-item{position:relative;border-radius:30px 30px 30px 30px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-lady-pearl"] .album-item:nth-child(even){border-radius:35px 25px 35px 25px;}
[data-theme="ext-lady-pearl"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-lady-pearl"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-lady-pearl"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-lady-pearl"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-lady-pearl"] .album-meta{font-family:'Spectral',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-lady-pearl"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Spectral',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-lady-pearl"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-lady-pearl"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Spectral',sans-serif;transition:var(--transition);}
[data-theme="ext-lady-pearl"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-lady-pearl"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-lady-pearl"] .contact-card:nth-child(2){border-radius:40px 20px 40px 20px;}
[data-theme="ext-lady-pearl"] .contact-card:nth-child(3){border-radius:20px 40px 20px 40px;}
[data-theme="ext-lady-pearl"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-lady-pearl"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 4% 6% 0 0;}
[data-theme="ext-lady-pearl"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-lady-pearl"] .footer-logo span{color:var(--accent);}
[data-theme="ext-lady-pearl"] .footer-links a{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-lady-pearl"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-lady-pearl"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-lady-pearl"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-lady-pearl"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-lady-pearl"] .stat-item{border-radius:30px 30px 30px 30px;transition:var(--transition);}
[data-theme="ext-lady-pearl"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-lady-pearl"] .nav-toggle span{background:var(--text);}
[data-theme="ext-lady-pearl"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-lady-pearl"] .mobile-menu a{color:var(--text-dim);font-family:'Spectral',sans-serif;}
[data-theme="ext-lady-pearl"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-lady-pearl"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-lady-pearl"] .ts-name{color:var(--text);font-family:'Spectral',sans-serif;}
[data-theme="ext-lady-pearl"] a{color:var(--accent);}
[data-theme="ext-lady-pearl"] .eyebrow{color:var(--accent);font-family:'Spectral',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-lady-pearl"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-lady-velvet  (丝绒优雅 / Velvet Elegance)
   ============================================================ */

[data-theme="ext-lady-velvet"]{
  --bg:#100608;--bg-2:#1a0a0e;--bg-3:#24101a;--bg-4:#2e1624;
  --text:#fff0f0;--text-dim:#b88898;--text-mid:#8c6070;
  --accent:#8b1538;--accent-glow:rgba(139,21,56,0.4);--white:#fff0f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#100608ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Playfair Display',serif;--font-body:'DM Serif Display',sans-serif;
  --c-on-accent:#100608;
}
[data-theme="ext-lady-velvet"] body{background:#100608;color:#fff0f0;font-family:'DM Serif Display',sans-serif;cursor:none;}
[data-theme="ext-lady-velvet"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(180deg,rgba(139,21,56,0.4) 0%,transparent 60%);
}
[data-theme="ext-lady-velvet"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-lady-velvet"] .nav-link{color:var(--text-dim);font-family:'DM Serif Display',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-lady-velvet"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-lady-velvet"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-lady-velvet"] .nav-link:hover::after{width:100%;}
[data-theme="ext-lady-velvet"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-lady-velvet"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-lady-velvet"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-lady-velvet"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-lady-velvet"] .hero > .hero-content,
[data-theme="ext-lady-velvet"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-lady-velvet"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'DM Serif Display',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-lady-velvet"] .hero-title{font-family:'Playfair Display',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-lady-velvet"] .hero-tagline{font-family:'DM Serif Display',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-lady-velvet"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-lady-velvet"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_lady_velvet_scroll 2.2s ease-in-out infinite;}
@keyframes ext_lady_velvet_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-lady-velvet"] .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-lady-velvet"] .section-subtitle{font-family:'DM Serif Display',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-lady-velvet"] .about-img-wrapper{border-radius:45% 55% 60% 40% / 40% 60% 55% 45%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-lady-velvet"] .about-img-wrapper:hover{border-radius:55% 45% 40% 60% / 60% 40% 45% 55%;}
[data-theme="ext-lady-velvet"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-lady-velvet"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-lady-velvet"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-lady-velvet"] .stat-num{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-lady-velvet"] .stat-label{font-family:'DM Serif Display',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-lady-velvet"] .album-item{position:relative;border-radius:20px 50px 35px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-lady-velvet"] .album-item:nth-child(even){border-radius:50px 35px 50px 20px;}
[data-theme="ext-lady-velvet"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-lady-velvet"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-lady-velvet"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-lady-velvet"] .album-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-lady-velvet"] .album-meta{font-family:'DM Serif Display',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-lady-velvet"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'DM Serif Display',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-lady-velvet"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-lady-velvet"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Serif Display',sans-serif;transition:var(--transition);}
[data-theme="ext-lady-velvet"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-lady-velvet"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-lady-velvet"] .contact-card:nth-child(2){border-radius:25px 60px 40px 60px;}
[data-theme="ext-lady-velvet"] .contact-card:nth-child(3){border-radius:60px 40px 60px 25px;}
[data-theme="ext-lady-velvet"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-lady-velvet"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:35% 65% 0 0 / 5% 14% 0 0;}
[data-theme="ext-lady-velvet"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-lady-velvet"] .footer-logo span{color:var(--accent);}
[data-theme="ext-lady-velvet"] .footer-links a{color:var(--text-dim);font-family:'DM Serif Display',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-lady-velvet"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-lady-velvet"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-lady-velvet"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-lady-velvet"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-lady-velvet"] .stat-item{border-radius:20px 50px 20px 50px;transition:var(--transition);}
[data-theme="ext-lady-velvet"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-lady-velvet"] .nav-toggle span{background:var(--text);}
[data-theme="ext-lady-velvet"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-lady-velvet"] .mobile-menu a{color:var(--text-dim);font-family:'DM Serif Display',sans-serif;}
[data-theme="ext-lady-velvet"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-lady-velvet"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-lady-velvet"] .ts-name{color:var(--text);font-family:'DM Serif Display',sans-serif;}
[data-theme="ext-lady-velvet"] a{color:var(--accent);}
[data-theme="ext-lady-velvet"] .eyebrow{color:var(--accent);font-family:'DM Serif Display',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-lady-velvet"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-lady-lace  (蕾丝花边 / Lace Trim)
   ============================================================ */

[data-theme="ext-lady-lace"]{
  --bg:#0c0c0a;--bg-2:#161612;--bg-3:#202018;--bg-4:#2a2a1e;
  --text:#fffef5;--text-dim:#c8c4a8;--text-mid:#9c9880;
  --accent:#d4c8a8;--accent-glow:rgba(212,200,168,0.4);--white:#fffef5;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0c0c0aee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Libre Baskerville',serif;--font-body:'Crimson Text',sans-serif;
  --c-on-accent:#0c0c0a;
}
[data-theme="ext-lady-lace"] body{background:#0c0c0a;color:#fffef5;font-family:'Crimson Text',sans-serif;cursor:none;}
[data-theme="ext-lady-lace"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:repeating-linear-gradient(90deg,transparent 0px,transparent 20px,rgba(212,200,168,0.4) 20px,rgba(212,200,168,0.4) 21px);
}
[data-theme="ext-lady-lace"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-lady-lace"] .nav-link{color:var(--text-dim);font-family:'Crimson Text',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-lady-lace"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-lady-lace"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-lady-lace"] .nav-link:hover::after{width:100%;}
[data-theme="ext-lady-lace"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-lady-lace"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-lady-lace"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-lady-lace"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-lady-lace"] .hero > .hero-content,
[data-theme="ext-lady-lace"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-lady-lace"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Crimson Text',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-lady-lace"] .hero-title{font-family:'Libre Baskerville',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-lady-lace"] .hero-tagline{font-family:'Crimson Text',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-lady-lace"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-lady-lace"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_lady_lace_scroll 2.2s ease-in-out infinite;}
@keyframes ext_lady_lace_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-lady-lace"] .section-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-lady-lace"] .section-subtitle{font-family:'Crimson Text',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-lady-lace"] .about-img-wrapper{border-radius:40% 60% 40% 60% / 60% 40% 60% 40%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-lady-lace"] .about-img-wrapper:hover{border-radius:60% 40% 60% 40% / 40% 60% 40% 60%;}
[data-theme="ext-lady-lace"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-lady-lace"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-lady-lace"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-lady-lace"] .stat-num{font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-lady-lace"] .stat-label{font-family:'Crimson Text',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-lady-lace"] .album-item{position:relative;border-radius:20px 40px 20px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-lady-lace"] .album-item:nth-child(even){border-radius:40px 20px 40px 20px;}
[data-theme="ext-lady-lace"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-lady-lace"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-lady-lace"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-lady-lace"] .album-title{font-family:'Libre Baskerville',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-lady-lace"] .album-meta{font-family:'Crimson Text',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-lady-lace"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Crimson Text',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-lady-lace"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-lady-lace"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Crimson Text',sans-serif;transition:var(--transition);}
[data-theme="ext-lady-lace"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-lady-lace"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-lady-lace"] .contact-card:nth-child(2){border-radius:25px 50px 25px 50px;}
[data-theme="ext-lady-lace"] .contact-card:nth-child(3){border-radius:50px 25px 50px 25px;}
[data-theme="ext-lady-lace"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-lady-lace"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:40% 60% 0 0 / 8% 6% 0 0;}
[data-theme="ext-lady-lace"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-lady-lace"] .footer-logo span{color:var(--accent);}
[data-theme="ext-lady-lace"] .footer-links a{color:var(--text-dim);font-family:'Crimson Text',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-lady-lace"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-lady-lace"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-lady-lace"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-lady-lace"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-lady-lace"] .stat-item{border-radius:20px 40px 20px 40px;transition:var(--transition);}
[data-theme="ext-lady-lace"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-lady-lace"] .nav-toggle span{background:var(--text);}
[data-theme="ext-lady-lace"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-lady-lace"] .mobile-menu a{color:var(--text-dim);font-family:'Crimson Text',sans-serif;}
[data-theme="ext-lady-lace"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-lady-lace"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-lady-lace"] .ts-name{color:var(--text);font-family:'Crimson Text',sans-serif;}
[data-theme="ext-lady-lace"] a{color:var(--accent);}
[data-theme="ext-lady-lace"] .eyebrow{color:var(--accent);font-family:'Crimson Text',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-lady-lace"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-wild-rose  (野蔷薇 / Wild Rose)
   ============================================================ */

[data-theme="ext-wild-rose"]{
  --bg:#120608;--bg-2:#1c0a0e;--bg-3:#2c121a;--bg-4:#3c1a26;
  --text:#fff0f0;--text-dim:#c8808a;--text-mid:#9c5868;
  --accent:#e91e63;--accent-glow:rgba(233,30,99,0.4);--white:#fff0f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#120608ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Yeseva One',serif;--font-body:'Josefin Sans',sans-serif;
  --c-on-accent:#120608;
}
[data-theme="ext-wild-rose"] body{background:#120608;color:#fff0f0;font-family:'Josefin Sans',sans-serif;cursor:none;}
[data-theme="ext-wild-rose"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 15% 85%,rgba(233,30,99,0.4) 0%,transparent 25%),radial-gradient(circle at 85% 15%,rgba(233,30,99,0.4) 0%,transparent 25%);
}
[data-theme="ext-wild-rose"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-wild-rose"] .nav-link{color:var(--text-dim);font-family:'Josefin Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-wild-rose"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-wild-rose"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-wild-rose"] .nav-link:hover::after{width:100%;}
[data-theme="ext-wild-rose"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-wild-rose"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-wild-rose"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-wild-rose"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-wild-rose"] .hero > .hero-content,
[data-theme="ext-wild-rose"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-wild-rose"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Josefin Sans',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-wild-rose"] .hero-title{font-family:'Yeseva One',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-wild-rose"] .hero-tagline{font-family:'Josefin Sans',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-wild-rose"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-wild-rose"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_wild_rose_scroll 2.2s ease-in-out infinite;}
@keyframes ext_wild_rose_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-wild-rose"] .section-title{font-family:'Yeseva One',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-wild-rose"] .section-subtitle{font-family:'Josefin Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-wild-rose"] .about-img-wrapper{border-radius:70% 30% 65% 35% / 35% 65% 30% 70%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-wild-rose"] .about-img-wrapper:hover{border-radius:30% 70% 35% 65% / 65% 35% 70% 30%;}
[data-theme="ext-wild-rose"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-wild-rose"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-wild-rose"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-wild-rose"] .stat-num{font-family:'Yeseva One',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-wild-rose"] .stat-label{font-family:'Josefin Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-wild-rose"] .album-item{position:relative;border-radius:5px 55px 10px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-wild-rose"] .album-item:nth-child(even){border-radius:50px 10px 55px 5px;}
[data-theme="ext-wild-rose"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-wild-rose"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-wild-rose"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-wild-rose"] .album-title{font-family:'Yeseva One',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-wild-rose"] .album-meta{font-family:'Josefin Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-wild-rose"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Josefin Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-wild-rose"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-wild-rose"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Josefin Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-wild-rose"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-wild-rose"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-wild-rose"] .contact-card:nth-child(2){border-radius:8px 65px 15px 60px;}
[data-theme="ext-wild-rose"] .contact-card:nth-child(3){border-radius:60px 15px 65px 8px;}
[data-theme="ext-wild-rose"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-wild-rose"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:55% 45% 0 0 / 10% 7% 0 0;}
[data-theme="ext-wild-rose"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-wild-rose"] .footer-logo span{color:var(--accent);}
[data-theme="ext-wild-rose"] .footer-links a{color:var(--text-dim);font-family:'Josefin Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-wild-rose"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-wild-rose"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-wild-rose"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-wild-rose"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-wild-rose"] .stat-item{border-radius:5px 55px 5px 55px;transition:var(--transition);}
[data-theme="ext-wild-rose"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-wild-rose"] .nav-toggle span{background:var(--text);}
[data-theme="ext-wild-rose"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-wild-rose"] .mobile-menu a{color:var(--text-dim);font-family:'Josefin Sans',sans-serif;}
[data-theme="ext-wild-rose"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-wild-rose"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-wild-rose"] .ts-name{color:var(--text);font-family:'Josefin Sans',sans-serif;}
[data-theme="ext-wild-rose"] a{color:var(--accent);}
[data-theme="ext-wild-rose"] .eyebrow{color:var(--accent);font-family:'Josefin Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-wild-rose"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-wild-neon  (霓虹叛逆 / Neon Rebel)
   ============================================================ */

[data-theme="ext-wild-neon"]{
  --bg:#08040c;--bg-2:#100618;--bg-3:#180824;--bg-4:#200a30;
  --text:#fff0ff;--text-dim:#c878d4;--text-mid:#9c50a8;
  --accent:#ff00ff;--accent-glow:rgba(255,0,255,0.4);--white:#fff0ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#08040cee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Audiowide',serif;--font-body:'Rajdhani',sans-serif;
  --c-on-accent:#08040c;
}
[data-theme="ext-wild-neon"] body{background:#08040c;color:#fff0ff;font-family:'Rajdhani',sans-serif;cursor:none;}
[data-theme="ext-wild-neon"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(135deg,rgba(255,0,255,0.4) 0%,transparent 50%);
}
[data-theme="ext-wild-neon"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-wild-neon"] .nav-link{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-wild-neon"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-wild-neon"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-wild-neon"] .nav-link:hover::after{width:100%;}
[data-theme="ext-wild-neon"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-wild-neon"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-wild-neon"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-wild-neon"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-wild-neon"] .hero > .hero-content,
[data-theme="ext-wild-neon"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-wild-neon"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-wild-neon"] .hero-title{font-family:'Audiowide',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-wild-neon"] .hero-tagline{font-family:'Rajdhani',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-wild-neon"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-wild-neon"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_wild_neon_scroll 2.2s ease-in-out infinite;}
@keyframes ext_wild_neon_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-wild-neon"] .section-title{font-family:'Audiowide',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-wild-neon"] .section-subtitle{font-family:'Rajdhani',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-wild-neon"] .about-img-wrapper{border-radius:75% 25% 70% 30% / 30% 70% 25% 75%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-wild-neon"] .about-img-wrapper:hover{border-radius:25% 75% 30% 70% / 70% 30% 75% 25%;}
[data-theme="ext-wild-neon"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-wild-neon"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-wild-neon"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-wild-neon"] .stat-num{font-family:'Audiowide',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-wild-neon"] .stat-label{font-family:'Rajdhani',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-wild-neon"] .album-item{position:relative;border-radius:2px 50px 2px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-wild-neon"] .album-item:nth-child(even){border-radius:50px 2px 50px 2px;}
[data-theme="ext-wild-neon"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-wild-neon"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-wild-neon"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-wild-neon"] .album-title{font-family:'Audiowide',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-wild-neon"] .album-meta{font-family:'Rajdhani',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-wild-neon"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Rajdhani',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-wild-neon"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-wild-neon"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Rajdhani',sans-serif;transition:var(--transition);}
[data-theme="ext-wild-neon"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-wild-neon"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-wild-neon"] .contact-card:nth-child(2){border-radius:2px 60px 2px 60px;}
[data-theme="ext-wild-neon"] .contact-card:nth-child(3){border-radius:60px 2px 60px 2px;}
[data-theme="ext-wild-neon"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-wild-neon"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:60% 40% 0 0 / 12% 5% 0 0;}
[data-theme="ext-wild-neon"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-wild-neon"] .footer-logo span{color:var(--accent);}
[data-theme="ext-wild-neon"] .footer-links a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-wild-neon"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-wild-neon"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-wild-neon"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-wild-neon"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-wild-neon"] .stat-item{border-radius:2px 50px 2px 50px;transition:var(--transition);}
[data-theme="ext-wild-neon"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-wild-neon"] .nav-toggle span{background:var(--text);}
[data-theme="ext-wild-neon"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-wild-neon"] .mobile-menu a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-wild-neon"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-wild-neon"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-wild-neon"] .ts-name{color:var(--text);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-wild-neon"] a{color:var(--accent);}
[data-theme="ext-wild-neon"] .eyebrow{color:var(--accent);font-family:'Rajdhani',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-wild-neon"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-wild-leopard  (豹纹女王 / Leopard Queen)
   ============================================================ */

[data-theme="ext-wild-leopard"]{
  --bg:#0c0804;--bg-2:#161008;--bg-3:#20180c;--bg-4:#2a2010;
  --text:#fff8e8;--text-dim:#c8a868;--text-mid:#9c8048;
  --accent:#d4a020;--accent-glow:rgba(212,160,32,0.4);--white:#fff8e8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0c0804ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Anton',serif;--font-body:'Oswald',sans-serif;
  --c-on-accent:#0c0804;
}
[data-theme="ext-wild-leopard"] body{background:#0c0804;color:#fff8e8;font-family:'Oswald',sans-serif;cursor:none;}
[data-theme="ext-wild-leopard"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 30%,rgba(212,160,32,0.4) 0%,transparent 20%),radial-gradient(circle at 70% 70%,rgba(212,160,32,0.4) 0%,transparent 20%);
}
[data-theme="ext-wild-leopard"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-wild-leopard"] .nav-link{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-wild-leopard"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-wild-leopard"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-wild-leopard"] .nav-link:hover::after{width:100%;}
[data-theme="ext-wild-leopard"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-wild-leopard"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-wild-leopard"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-wild-leopard"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-wild-leopard"] .hero > .hero-content,
[data-theme="ext-wild-leopard"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-wild-leopard"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-wild-leopard"] .hero-title{font-family:'Anton',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-wild-leopard"] .hero-tagline{font-family:'Oswald',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-wild-leopard"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-wild-leopard"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_wild_leopard_scroll 2.2s ease-in-out infinite;}
@keyframes ext_wild_leopard_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-wild-leopard"] .section-title{font-family:'Anton',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-wild-leopard"] .section-subtitle{font-family:'Oswald',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-wild-leopard"] .about-img-wrapper{border-radius:55% 45% 65% 35% / 35% 65% 45% 55%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-wild-leopard"] .about-img-wrapper:hover{border-radius:45% 55% 35% 65% / 65% 35% 55% 45%;}
[data-theme="ext-wild-leopard"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-wild-leopard"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-wild-leopard"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-wild-leopard"] .stat-num{font-family:'Anton',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-wild-leopard"] .stat-label{font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-wild-leopard"] .album-item{position:relative;border-radius:15px 50px 25px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-wild-leopard"] .album-item:nth-child(even){border-radius:40px 25px 50px 15px;}
[data-theme="ext-wild-leopard"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-wild-leopard"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-wild-leopard"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-wild-leopard"] .album-title{font-family:'Anton',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-wild-leopard"] .album-meta{font-family:'Oswald',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-wild-leopard"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Oswald',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-wild-leopard"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-wild-leopard"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Oswald',sans-serif;transition:var(--transition);}
[data-theme="ext-wild-leopard"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-wild-leopard"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-wild-leopard"] .contact-card:nth-child(2){border-radius:20px 60px 30px 50px;}
[data-theme="ext-wild-leopard"] .contact-card:nth-child(3){border-radius:50px 30px 60px 20px;}
[data-theme="ext-wild-leopard"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-wild-leopard"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 8% 8% 0 0;}
[data-theme="ext-wild-leopard"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-wild-leopard"] .footer-logo span{color:var(--accent);}
[data-theme="ext-wild-leopard"] .footer-links a{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-wild-leopard"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-wild-leopard"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-wild-leopard"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-wild-leopard"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-wild-leopard"] .stat-item{border-radius:15px 50px 15px 50px;transition:var(--transition);}
[data-theme="ext-wild-leopard"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-wild-leopard"] .nav-toggle span{background:var(--text);}
[data-theme="ext-wild-leopard"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-wild-leopard"] .mobile-menu a{color:var(--text-dim);font-family:'Oswald',sans-serif;}
[data-theme="ext-wild-leopard"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-wild-leopard"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-wild-leopard"] .ts-name{color:var(--text);font-family:'Oswald',sans-serif;}
[data-theme="ext-wild-leopard"] a{color:var(--accent);}
[data-theme="ext-wild-leopard"] .eyebrow{color:var(--accent);font-family:'Oswald',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-wild-leopard"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-wild-stud  (铆钉朋克 / Stud Punk)
   ============================================================ */

[data-theme="ext-wild-stud"]{
  --bg:#08080a;--bg-2:#101012;--bg-3:#181820;--bg-4:#202028;
  --text:#f0f0f5;--text-dim:#888898;--text-mid:#606068;
  --accent:#a0a0b0;--accent-glow:rgba(160,160,176,0.4);--white:#f0f0f5;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#08080aee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Russo One',serif;--font-body:'Chivo',sans-serif;
  --c-on-accent:#08080a;
}
[data-theme="ext-wild-stud"] body{background:#08080a;color:#f0f0f5;font-family:'Chivo',sans-serif;cursor:none;}
[data-theme="ext-wild-stud"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(160,160,176,0.4) 0%,transparent 30%);
}
[data-theme="ext-wild-stud"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-wild-stud"] .nav-link{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-wild-stud"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-wild-stud"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-wild-stud"] .nav-link:hover::after{width:100%;}
[data-theme="ext-wild-stud"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-wild-stud"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-wild-stud"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-wild-stud"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-wild-stud"] .hero > .hero-content,
[data-theme="ext-wild-stud"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-wild-stud"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-wild-stud"] .hero-title{font-family:'Russo One',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-wild-stud"] .hero-tagline{font-family:'Chivo',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-wild-stud"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-wild-stud"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_wild_stud_scroll 2.2s ease-in-out infinite;}
@keyframes ext_wild_stud_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-wild-stud"] .section-title{font-family:'Russo One',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-wild-stud"] .section-subtitle{font-family:'Chivo',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-wild-stud"] .about-img-wrapper{border-radius:65% 35% 60% 40% / 35% 65% 40% 60%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-wild-stud"] .about-img-wrapper:hover{border-radius:35% 65% 40% 60% / 65% 35% 60% 40%;}
[data-theme="ext-wild-stud"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-wild-stud"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-wild-stud"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-wild-stud"] .stat-num{font-family:'Russo One',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-wild-stud"] .stat-label{font-family:'Chivo',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-wild-stud"] .album-item{position:relative;border-radius:2px 40px 2px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-wild-stud"] .album-item:nth-child(even){border-radius:40px 2px 40px 2px;}
[data-theme="ext-wild-stud"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-wild-stud"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-wild-stud"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-wild-stud"] .album-title{font-family:'Russo One',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-wild-stud"] .album-meta{font-family:'Chivo',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-wild-stud"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Chivo',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-wild-stud"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-wild-stud"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Chivo',sans-serif;transition:var(--transition);}
[data-theme="ext-wild-stud"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-wild-stud"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-wild-stud"] .contact-card:nth-child(2){border-radius:2px 50px 2px 50px;}
[data-theme="ext-wild-stud"] .contact-card:nth-child(3){border-radius:50px 2px 50px 2px;}
[data-theme="ext-wild-stud"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-wild-stud"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:55% 45% 0 0 / 6% 10% 0 0;}
[data-theme="ext-wild-stud"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-wild-stud"] .footer-logo span{color:var(--accent);}
[data-theme="ext-wild-stud"] .footer-links a{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-wild-stud"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-wild-stud"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-wild-stud"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-wild-stud"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-wild-stud"] .stat-item{border-radius:2px 40px 2px 40px;transition:var(--transition);}
[data-theme="ext-wild-stud"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-wild-stud"] .nav-toggle span{background:var(--text);}
[data-theme="ext-wild-stud"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-wild-stud"] .mobile-menu a{color:var(--text-dim);font-family:'Chivo',sans-serif;}
[data-theme="ext-wild-stud"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-wild-stud"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-wild-stud"] .ts-name{color:var(--text);font-family:'Chivo',sans-serif;}
[data-theme="ext-wild-stud"] a{color:var(--accent);}
[data-theme="ext-wild-stud"] .eyebrow{color:var(--accent);font-family:'Chivo',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-wild-stud"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-pure-snow  (初雪 / First Snow)
   ============================================================ */

[data-theme="ext-pure-snow"]{
  --bg:#080a0e;--bg-2:#0e1218;--bg-3:#141a22;--bg-4:#1a222e;
  --text:#f8fbff;--text-dim:#88a8c8;--text-mid:#6080a0;
  --accent:#a0d8ff;--accent-glow:rgba(160,216,255,0.4);--white:#f8fbff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080a0eee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cinzel',serif;--font-body:'Hanken Grotesk',sans-serif;
  --c-on-accent:#080a0e;
}
[data-theme="ext-pure-snow"] body{background:#080a0e;color:#f8fbff;font-family:'Hanken Grotesk',sans-serif;cursor:none;}
[data-theme="ext-pure-snow"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 20% 20%,rgba(160,216,255,0.4) 0%,transparent 15%),radial-gradient(circle at 80% 80%,rgba(160,216,255,0.4) 0%,transparent 15%);
}
[data-theme="ext-pure-snow"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-pure-snow"] .nav-link{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-pure-snow"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-pure-snow"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-pure-snow"] .nav-link:hover::after{width:100%;}
[data-theme="ext-pure-snow"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-pure-snow"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-pure-snow"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-pure-snow"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-pure-snow"] .hero > .hero-content,
[data-theme="ext-pure-snow"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-pure-snow"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-pure-snow"] .hero-title{font-family:'Cinzel',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-pure-snow"] .hero-tagline{font-family:'Hanken Grotesk',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-pure-snow"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-pure-snow"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_pure_snow_scroll 2.2s ease-in-out infinite;}
@keyframes ext_pure_snow_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-pure-snow"] .section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-pure-snow"] .section-subtitle{font-family:'Hanken Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-pure-snow"] .about-img-wrapper{border-radius:45% 55% 45% 55% / 55% 45% 55% 45%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-pure-snow"] .about-img-wrapper:hover{border-radius:55% 45% 55% 45% / 45% 55% 45% 55%;}
[data-theme="ext-pure-snow"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-pure-snow"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-pure-snow"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-pure-snow"] .stat-num{font-family:'Cinzel',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-pure-snow"] .stat-label{font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-pure-snow"] .album-item{position:relative;border-radius:25px 35px 25px 35px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-pure-snow"] .album-item:nth-child(even){border-radius:35px 25px 35px 25px;}
[data-theme="ext-pure-snow"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-pure-snow"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-pure-snow"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-pure-snow"] .album-title{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-pure-snow"] .album-meta{font-family:'Hanken Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-pure-snow"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Hanken Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-pure-snow"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-pure-snow"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Hanken Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-pure-snow"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-pure-snow"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-pure-snow"] .contact-card:nth-child(2){border-radius:30px 45px 30px 45px;}
[data-theme="ext-pure-snow"] .contact-card:nth-child(3){border-radius:45px 30px 45px 30px;}
[data-theme="ext-pure-snow"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-pure-snow"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 4% 6% 0 0;}
[data-theme="ext-pure-snow"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-pure-snow"] .footer-logo span{color:var(--accent);}
[data-theme="ext-pure-snow"] .footer-links a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-pure-snow"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-pure-snow"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-pure-snow"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-pure-snow"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-pure-snow"] .stat-item{border-radius:25px 35px 25px 35px;transition:var(--transition);}
[data-theme="ext-pure-snow"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-pure-snow"] .nav-toggle span{background:var(--text);}
[data-theme="ext-pure-snow"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-pure-snow"] .mobile-menu a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-pure-snow"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-pure-snow"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-pure-snow"] .ts-name{color:var(--text);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-pure-snow"] a{color:var(--accent);}
[data-theme="ext-pure-snow"] .eyebrow{color:var(--accent);font-family:'Hanken Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-pure-snow"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-pure-dew  (晨露 / Morning Dew)
   ============================================================ */

[data-theme="ext-pure-dew"]{
  --bg:#080c0a;--bg-2:#0e1410;--bg-3:#141a16;--bg-4:#1a221c;
  --text:#f0fff5;--text-dim:#88c098;--text-mid:#609068;
  --accent:#6ee7b7;--accent-glow:rgba(110,231,183,0.4);--white:#f0fff5;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080c0aee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'Source Sans 3',sans-serif;
  --c-on-accent:#080c0a;
}
[data-theme="ext-pure-dew"] body{background:#080c0a;color:#f0fff5;font-family:'Source Sans 3',sans-serif;cursor:none;}
[data-theme="ext-pure-dew"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 40% 60%,rgba(110,231,183,0.4) 0%,transparent 25%);
}
[data-theme="ext-pure-dew"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-pure-dew"] .nav-link{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-pure-dew"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-pure-dew"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-pure-dew"] .nav-link:hover::after{width:100%;}
[data-theme="ext-pure-dew"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-pure-dew"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-pure-dew"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-pure-dew"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-pure-dew"] .hero > .hero-content,
[data-theme="ext-pure-dew"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-pure-dew"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-pure-dew"] .hero-title{font-family:'Marcellus',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-pure-dew"] .hero-tagline{font-family:'Source Sans 3',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-pure-dew"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-pure-dew"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_pure_dew_scroll 2.2s ease-in-out infinite;}
@keyframes ext_pure_dew_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-pure-dew"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-pure-dew"] .section-subtitle{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-pure-dew"] .about-img-wrapper{border-radius:50% 50% 65% 35% / 35% 65% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-pure-dew"] .about-img-wrapper:hover{border-radius:50% 50% 35% 65% / 65% 35% 50% 50%;}
[data-theme="ext-pure-dew"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-pure-dew"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-pure-dew"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-pure-dew"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-pure-dew"] .stat-label{font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-pure-dew"] .album-item{position:relative;border-radius:20px 40px 20px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-pure-dew"] .album-item:nth-child(even){border-radius:40px 20px 40px 20px;}
[data-theme="ext-pure-dew"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-pure-dew"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-pure-dew"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-pure-dew"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-pure-dew"] .album-meta{font-family:'Source Sans 3',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-pure-dew"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Source Sans 3',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-pure-dew"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-pure-dew"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Source Sans 3',sans-serif;transition:var(--transition);}
[data-theme="ext-pure-dew"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-pure-dew"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-pure-dew"] .contact-card:nth-child(2){border-radius:25px 50px 25px 50px;}
[data-theme="ext-pure-dew"] .contact-card:nth-child(3){border-radius:50px 25px 50px 25px;}
[data-theme="ext-pure-dew"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-pure-dew"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 8% 0 0;}
[data-theme="ext-pure-dew"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-pure-dew"] .footer-logo span{color:var(--accent);}
[data-theme="ext-pure-dew"] .footer-links a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-pure-dew"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-pure-dew"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-pure-dew"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-pure-dew"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-pure-dew"] .stat-item{border-radius:20px 40px 20px 40px;transition:var(--transition);}
[data-theme="ext-pure-dew"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-pure-dew"] .nav-toggle span{background:var(--text);}
[data-theme="ext-pure-dew"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-pure-dew"] .mobile-menu a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-pure-dew"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-pure-dew"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-pure-dew"] .ts-name{color:var(--text);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-pure-dew"] a{color:var(--accent);}
[data-theme="ext-pure-dew"] .eyebrow{color:var(--accent);font-family:'Source Sans 3',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-pure-dew"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-pure-lily  (白百合 / White Lily)
   ============================================================ */

[data-theme="ext-pure-lily"]{
  --bg:#0a0a0c;--bg-2:#121214;--bg-3:#1a1a1e;--bg-4:#222226;
  --text:#fffafa;--text-dim:#a8a8b0;--text-mid:#787880;
  --accent:#e0e0e8;--accent-glow:rgba(224,224,232,0.3);--white:#fffafa;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0a0a0cee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Spectral',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#0a0a0c;
}
[data-theme="ext-pure-lily"] body{background:#0a0a0c;color:#fffafa;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-pure-lily"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(ellipse at 50% 30%,rgba(224,224,232,0.3) 0%,transparent 40%);
}
[data-theme="ext-pure-lily"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-pure-lily"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-pure-lily"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-pure-lily"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-pure-lily"] .nav-link:hover::after{width:100%;}
[data-theme="ext-pure-lily"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-pure-lily"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-pure-lily"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-pure-lily"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-pure-lily"] .hero > .hero-content,
[data-theme="ext-pure-lily"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-pure-lily"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-pure-lily"] .hero-title{font-family:'Spectral',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-pure-lily"] .hero-tagline{font-family:'Lora',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-pure-lily"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-pure-lily"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_pure_lily_scroll 2.2s ease-in-out infinite;}
@keyframes ext_pure_lily_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-pure-lily"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-pure-lily"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-pure-lily"] .about-img-wrapper{border-radius:55% 45% 55% 45% / 45% 55% 45% 55%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-pure-lily"] .about-img-wrapper:hover{border-radius:45% 55% 45% 55% / 55% 45% 55% 45%;}
[data-theme="ext-pure-lily"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-pure-lily"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-pure-lily"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-pure-lily"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-pure-lily"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-pure-lily"] .album-item{position:relative;border-radius:30px 20px 30px 20px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-pure-lily"] .album-item:nth-child(even){border-radius:20px 30px 20px 30px;}
[data-theme="ext-pure-lily"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-pure-lily"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-pure-lily"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-pure-lily"] .album-title{font-family:'Spectral',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-pure-lily"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-pure-lily"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-pure-lily"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-pure-lily"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-pure-lily"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-pure-lily"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-pure-lily"] .contact-card:nth-child(2){border-radius:40px 25px 40px 25px;}
[data-theme="ext-pure-lily"] .contact-card:nth-child(3){border-radius:25px 40px 25px 40px;}
[data-theme="ext-pure-lily"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-pure-lily"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 5% 0 0;}
[data-theme="ext-pure-lily"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-pure-lily"] .footer-logo span{color:var(--accent);}
[data-theme="ext-pure-lily"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-pure-lily"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-pure-lily"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-pure-lily"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-pure-lily"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-pure-lily"] .stat-item{border-radius:30px 20px 30px 20px;transition:var(--transition);}
[data-theme="ext-pure-lily"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-pure-lily"] .nav-toggle span{background:var(--text);}
[data-theme="ext-pure-lily"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-pure-lily"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-pure-lily"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-pure-lily"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-pure-lily"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-pure-lily"] a{color:var(--accent);}
[data-theme="ext-pure-lily"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-pure-lily"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-pure-mint  (薄荷清风 / Mint Breeze)
   ============================================================ */

[data-theme="ext-pure-mint"]{
  --bg:#080c0a;--bg-2:#0e1410;--bg-3:#141a14;--bg-4:#1a2218;
  --text:#f0fff8;--text-dim:#80c8a0;--text-mid:#589078;
  --accent:#5eead4;--accent-glow:rgba(94,234,212,0.4);--white:#f0fff8;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080c0aee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Outfit',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#080c0a;
}
[data-theme="ext-pure-mint"] body{background:#080c0a;color:#f0fff8;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-pure-mint"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(135deg,rgba(94,234,212,0.4) 0%,transparent 40%);
}
[data-theme="ext-pure-mint"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-pure-mint"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-pure-mint"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-pure-mint"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-pure-mint"] .nav-link:hover::after{width:100%;}
[data-theme="ext-pure-mint"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-pure-mint"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-pure-mint"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-pure-mint"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-pure-mint"] .hero > .hero-content,
[data-theme="ext-pure-mint"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-pure-mint"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-pure-mint"] .hero-title{font-family:'Outfit',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-pure-mint"] .hero-tagline{font-family:'DM Sans',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-pure-mint"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-pure-mint"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_pure_mint_scroll 2.2s ease-in-out infinite;}
@keyframes ext_pure_mint_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-pure-mint"] .section-title{font-family:'Outfit',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-pure-mint"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-pure-mint"] .about-img-wrapper{border-radius:40% 60% 50% 50% / 50% 50% 60% 40%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-pure-mint"] .about-img-wrapper:hover{border-radius:60% 40% 50% 50% / 50% 50% 40% 60%;}
[data-theme="ext-pure-mint"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-pure-mint"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-pure-mint"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-pure-mint"] .stat-num{font-family:'Outfit',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-pure-mint"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-pure-mint"] .album-item{position:relative;border-radius:20px 35px 25px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-pure-mint"] .album-item:nth-child(even){border-radius:40px 25px 35px 20px;}
[data-theme="ext-pure-mint"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-pure-mint"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-pure-mint"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-pure-mint"] .album-title{font-family:'Outfit',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-pure-mint"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-pure-mint"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-pure-mint"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-pure-mint"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-pure-mint"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-pure-mint"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-pure-mint"] .contact-card:nth-child(2){border-radius:25px 45px 30px 50px;}
[data-theme="ext-pure-mint"] .contact-card:nth-child(3){border-radius:50px 30px 45px 25px;}
[data-theme="ext-pure-mint"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-pure-mint"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:45% 55% 0 0 / 6% 8% 0 0;}
[data-theme="ext-pure-mint"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-pure-mint"] .footer-logo span{color:var(--accent);}
[data-theme="ext-pure-mint"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-pure-mint"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-pure-mint"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-pure-mint"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-pure-mint"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-pure-mint"] .stat-item{border-radius:20px 35px 20px 35px;transition:var(--transition);}
[data-theme="ext-pure-mint"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-pure-mint"] .nav-toggle span{background:var(--text);}
[data-theme="ext-pure-mint"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-pure-mint"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-pure-mint"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-pure-mint"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-pure-mint"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-pure-mint"] a{color:var(--accent);}
[data-theme="ext-pure-mint"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-pure-mint"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-youth-campus  (青春校园 / Campus Youth)
   ============================================================ */

[data-theme="ext-youth-campus"]{
  --bg:#080a10;--bg-2:#0e1220;--bg-3:#141a28;--bg-4:#1a2230;
  --text:#f0f8ff;--text-dim:#8098b8;--text-mid:#587088;
  --accent:#3b82f6;--accent-glow:rgba(59,130,246,0.4);--white:#f0f8ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080a10ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#080a10;
}
[data-theme="ext-youth-campus"] body{background:#080a10;color:#f0f8ff;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-youth-campus"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 100%,rgba(59,130,246,0.4) 0%,transparent 50%);
}
[data-theme="ext-youth-campus"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-youth-campus"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-youth-campus"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-youth-campus"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-youth-campus"] .nav-link:hover::after{width:100%;}
[data-theme="ext-youth-campus"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-youth-campus"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-youth-campus"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-youth-campus"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-youth-campus"] .hero > .hero-content,
[data-theme="ext-youth-campus"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-youth-campus"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-youth-campus"] .hero-title{font-family:'Poppins',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-youth-campus"] .hero-tagline{font-family:'Inter',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-youth-campus"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-youth-campus"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_youth_campus_scroll 2.2s ease-in-out infinite;}
@keyframes ext_youth_campus_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-youth-campus"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-youth-campus"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-youth-campus"] .about-img-wrapper{border-radius:50% 50% 50% 50% / 45% 45% 55% 55%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-youth-campus"] .about-img-wrapper:hover{border-radius:48% 52% 48% 52% / 55% 55% 45% 45%;}
[data-theme="ext-youth-campus"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-youth-campus"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-youth-campus"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-youth-campus"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-youth-campus"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-youth-campus"] .album-item{position:relative;border-radius:25px 25px 25px 25px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-youth-campus"] .album-item:nth-child(even){border-radius:30px 20px 30px 20px;}
[data-theme="ext-youth-campus"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-youth-campus"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-youth-campus"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-youth-campus"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-youth-campus"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-youth-campus"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-youth-campus"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-youth-campus"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-youth-campus"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-youth-campus"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-youth-campus"] .contact-card:nth-child(2){border-radius:35px 20px 35px 20px;}
[data-theme="ext-youth-campus"] .contact-card:nth-child(3){border-radius:20px 35px 20px 35px;}
[data-theme="ext-youth-campus"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-youth-campus"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 7% 0 0;}
[data-theme="ext-youth-campus"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-youth-campus"] .footer-logo span{color:var(--accent);}
[data-theme="ext-youth-campus"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-youth-campus"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-youth-campus"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-youth-campus"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-youth-campus"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-youth-campus"] .stat-item{border-radius:25px 25px 25px 25px;transition:var(--transition);}
[data-theme="ext-youth-campus"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-youth-campus"] .nav-toggle span{background:var(--text);}
[data-theme="ext-youth-campus"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-youth-campus"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-youth-campus"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-youth-campus"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-youth-campus"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-youth-campus"] a{color:var(--accent);}
[data-theme="ext-youth-campus"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-youth-campus"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-youth-star  (星空约定 / Starry Promise)
   ============================================================ */

[data-theme="ext-youth-star"]{
  --bg:#080414;--bg-2:#0e0820;--bg-3:#140c2c;--bg-4:#1a1038;
  --text:#f0f0ff;--text-dim:#8878c8;--text-mid:#604898;
  --accent:#818cf8;--accent-glow:rgba(129,140,248,0.4);--white:#f0f0ff;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080414ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Syne',serif;--font-body:'Space Grotesk',sans-serif;
  --c-on-accent:#080414;
}
[data-theme="ext-youth-star"] body{background:#080414;color:#f0f0ff;font-family:'Space Grotesk',sans-serif;cursor:none;}
[data-theme="ext-youth-star"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 70%,rgba(129,140,248,0.4) 0%,transparent 20%),radial-gradient(circle at 70% 30%,rgba(129,140,248,0.4) 0%,transparent 20%);
}
[data-theme="ext-youth-star"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-youth-star"] .nav-link{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-youth-star"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-youth-star"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-youth-star"] .nav-link:hover::after{width:100%;}
[data-theme="ext-youth-star"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-youth-star"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-youth-star"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-youth-star"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-youth-star"] .hero > .hero-content,
[data-theme="ext-youth-star"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-youth-star"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-youth-star"] .hero-title{font-family:'Syne',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-youth-star"] .hero-tagline{font-family:'Space Grotesk',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-youth-star"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-youth-star"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_youth_star_scroll 2.2s ease-in-out infinite;}
@keyframes ext_youth_star_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-youth-star"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-youth-star"] .section-subtitle{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-youth-star"] .about-img-wrapper{border-radius:45% 55% 55% 45% / 55% 45% 45% 55%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-youth-star"] .about-img-wrapper:hover{border-radius:55% 45% 45% 55% / 45% 55% 55% 45%;}
[data-theme="ext-youth-star"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-youth-star"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-youth-star"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-youth-star"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-youth-star"] .stat-label{font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-youth-star"] .album-item{position:relative;border-radius:20px 35px 35px 20px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-youth-star"] .album-item:nth-child(even){border-radius:35px 20px 20px 35px;}
[data-theme="ext-youth-star"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-youth-star"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-youth-star"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-youth-star"] .album-title{font-family:'Syne',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-youth-star"] .album-meta{font-family:'Space Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-youth-star"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Space Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-youth-star"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-youth-star"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Space Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-youth-star"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-youth-star"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-youth-star"] .contact-card:nth-child(2){border-radius:25px 45px 45px 25px;}
[data-theme="ext-youth-star"] .contact-card:nth-child(3){border-radius:45px 25px 25px 45px;}
[data-theme="ext-youth-star"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-youth-star"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 7% 5% 0 0;}
[data-theme="ext-youth-star"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-youth-star"] .footer-logo span{color:var(--accent);}
[data-theme="ext-youth-star"] .footer-links a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-youth-star"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-youth-star"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-youth-star"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-youth-star"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-youth-star"] .stat-item{border-radius:20px 35px 20px 35px;transition:var(--transition);}
[data-theme="ext-youth-star"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-youth-star"] .nav-toggle span{background:var(--text);}
[data-theme="ext-youth-star"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-youth-star"] .mobile-menu a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-youth-star"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-youth-star"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-youth-star"] .ts-name{color:var(--text);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-youth-star"] a{color:var(--accent);}
[data-theme="ext-youth-star"] .eyebrow{color:var(--accent);font-family:'Space Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-youth-star"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-youth-summer  (夏日物语 / Summer Story)
   ============================================================ */

[data-theme="ext-youth-summer"]{
  --bg:#0c0804;--bg-2:#141008;--bg-3:#1c180c;--bg-4:#242010;
  --text:#fff8f0;--text-dim:#c8a868;--text-mid:#9c8048;
  --accent:#fb923c;--accent-glow:rgba(251,146,60,0.4);--white:#fff8f0;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#0c0804ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fredoka',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#0c0804;
}
[data-theme="ext-youth-summer"] body{background:#0c0804;color:#fff8f0;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-youth-summer"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 0%,rgba(251,146,60,0.4) 0%,transparent 40%);
}
[data-theme="ext-youth-summer"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-youth-summer"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-youth-summer"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-youth-summer"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-youth-summer"] .nav-link:hover::after{width:100%;}
[data-theme="ext-youth-summer"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-youth-summer"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-youth-summer"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-youth-summer"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-youth-summer"] .hero > .hero-content,
[data-theme="ext-youth-summer"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-youth-summer"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-youth-summer"] .hero-title{font-family:'Fredoka',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-youth-summer"] .hero-tagline{font-family:'Nunito',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-youth-summer"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-youth-summer"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_youth_summer_scroll 2.2s ease-in-out infinite;}
@keyframes ext_youth_summer_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-youth-summer"] .section-title{font-family:'Fredoka',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-youth-summer"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-youth-summer"] .about-img-wrapper{border-radius:55% 45% 50% 50% / 45% 55% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-youth-summer"] .about-img-wrapper:hover{border-radius:45% 55% 50% 50% / 55% 45% 50% 50%;}
[data-theme="ext-youth-summer"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-youth-summer"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-youth-summer"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-youth-summer"] .stat-num{font-family:'Fredoka',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-youth-summer"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-youth-summer"] .album-item{position:relative;border-radius:30px 20px 35px 15px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-youth-summer"] .album-item:nth-child(even){border-radius:15px 35px 20px 30px;}
[data-theme="ext-youth-summer"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-youth-summer"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-youth-summer"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-youth-summer"] .album-title{font-family:'Fredoka',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-youth-summer"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-youth-summer"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-youth-summer"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-youth-summer"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-youth-summer"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-youth-summer"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-youth-summer"] .contact-card:nth-child(2){border-radius:40px 25px 45px 20px;}
[data-theme="ext-youth-summer"] .contact-card:nth-child(3){border-radius:20px 45px 25px 40px;}
[data-theme="ext-youth-summer"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-youth-summer"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 6% 8% 0 0;}
[data-theme="ext-youth-summer"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-youth-summer"] .footer-logo span{color:var(--accent);}
[data-theme="ext-youth-summer"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-youth-summer"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-youth-summer"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-youth-summer"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-youth-summer"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-youth-summer"] .stat-item{border-radius:30px 20px 30px 20px;transition:var(--transition);}
[data-theme="ext-youth-summer"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-youth-summer"] .nav-toggle span{background:var(--text);}
[data-theme="ext-youth-summer"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-youth-summer"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-youth-summer"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-youth-summer"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-youth-summer"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-youth-summer"] a{color:var(--accent);}
[data-theme="ext-youth-summer"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-youth-summer"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-youth-wind  (风之诗 / Poem of Wind)
   ============================================================ */

[data-theme="ext-youth-wind"]{
  --bg:#080c0c;--bg-2:#0e1414;--bg-3:#141a1a;--bg-4:#1a2222;
  --text:#f0fdfa;--text-dim:#80b0a8;--text-mid:#588878;
  --accent:#2dd4bf;--accent-glow:rgba(45,212,191,0.4);--white:#f0fdfa;--border:rgba(255,255,255,0.08);
  --hero-overlay-color:rgba(0,0,0,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.7) 100%);
  --nav-scrolled-bg:#080c0cee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#080c0c;
}
[data-theme="ext-youth-wind"] body{background:#080c0c;color:#f0fdfa;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-youth-wind"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(180deg,transparent 0%,rgba(45,212,191,0.4) 100%);
}
[data-theme="ext-youth-wind"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-youth-wind"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-youth-wind"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-youth-wind"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-youth-wind"] .nav-link:hover::after{width:100%;}
[data-theme="ext-youth-wind"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem;}
[data-theme="ext-youth-wind"] .hero::before{content:"";position:absolute;inset:0;background:var(--hero-overlay-gradient);z-index:1;}
[data-theme="ext-youth-wind"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-youth-wind"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-youth-wind"] .hero > .hero-content,
[data-theme="ext-youth-wind"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-youth-wind"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-youth-wind"] .hero-title{font-family:'DM Serif Display',serif;font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;color:var(--text);text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-youth-wind"] .hero-tagline{font-family:'Work Sans',sans-serif;font-size:clamp(1rem,2.4vw,1.25rem);color:var(--text-mid);max-width:620px;margin:0 auto;line-height:1.7;}

[data-theme="ext-youth-wind"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);position:relative;overflow:hidden;}
[data-theme="ext-youth-wind"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--accent);animation:ext_youth_wind_scroll 2.2s ease-in-out infinite;}
@keyframes ext_youth_wind_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-youth-wind"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-youth-wind"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-youth-wind"] .about-img-wrapper{border-radius:50% 50% 55% 45% / 45% 55% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);}
[data-theme="ext-youth-wind"] .about-img-wrapper:hover{border-radius:50% 50% 45% 55% / 55% 45% 50% 50%;}
[data-theme="ext-youth-wind"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-youth-wind"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-youth-wind"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-youth-wind"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-youth-wind"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-youth-wind"] .album-item{position:relative;border-radius:15px 40px 20px 45px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);}
[data-theme="ext-youth-wind"] .album-item:nth-child(even){border-radius:45px 20px 40px 15px;}
[data-theme="ext-youth-wind"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.35),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-youth-wind"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-youth-wind"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-youth-wind"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-youth-wind"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-youth-wind"] .btn.primary{background:var(--accent);color:var(--bg);font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 0 24px var(--accent-glow);}
[data-theme="ext-youth-wind"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-youth-wind"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-youth-wind"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,255,255,0.03);}
[data-theme="ext-youth-wind"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);}
[data-theme="ext-youth-wind"] .contact-card:nth-child(2){border-radius:20px 50px 25px 55px;}
[data-theme="ext-youth-wind"] .contact-card:nth-child(3){border-radius:55px 25px 50px 20px;}
[data-theme="ext-youth-wind"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px var(--accent-glow);}
[data-theme="ext-youth-wind"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:45% 55% 0 0 / 5% 9% 0 0;}
[data-theme="ext-youth-wind"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-youth-wind"] .footer-logo span{color:var(--accent);}
[data-theme="ext-youth-wind"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-youth-wind"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-youth-wind"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);}
[data-theme="ext-youth-wind"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.2);}
[data-theme="ext-youth-wind"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-youth-wind"] .stat-item{border-radius:15px 40px 15px 40px;transition:var(--transition);}
[data-theme="ext-youth-wind"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.12);}
[data-theme="ext-youth-wind"] .nav-toggle span{background:var(--text);}
[data-theme="ext-youth-wind"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-youth-wind"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-youth-wind"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-youth-wind"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-youth-wind"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-youth-wind"] a{color:var(--accent);}
[data-theme="ext-youth-wind"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-youth-wind"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}


/* ============================================================
   THEME: ext-light-aurora  (极光晨曦 / Aurora Dawn) [LIGHT]
   ============================================================ */

[data-theme="ext-light-aurora"]{
  --bg:#f0f4ff;--bg-2:#e0e8f5;--bg-3:#d0dcee;--bg-4:#c0d0e8;
  --text:#1a2a4a;--text-dim:#4a5a7a;--text-mid:#6a7a9a;
  --accent:#5b8def;--accent-glow:rgba(91,141,239,0.25);--white:#1a2a4a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0f4ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Syne',serif;--font-body:'Hanken Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-aurora"] body{background:#f0f4ff;color:#1a2a4a;font-family:'Hanken Grotesk',sans-serif;cursor:none;}
[data-theme="ext-light-aurora"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(91,141,239,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-aurora"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-aurora"] .nav-link{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-aurora"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-aurora"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-aurora"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-aurora"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-aurora"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-aurora"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-aurora"] .hero > .hero-content,
[data-theme="ext-light-aurora"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_aurora_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-aurora"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-aurora"] .section-subtitle{font-family:'Hanken Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-aurora"] .about-img-wrapper{border-radius:50% 50% 60% 40% / 40% 60% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(91,141,239,0.15);}
[data-theme="ext-light-aurora"] .about-img-wrapper:hover{border-radius:60% 40% 50% 50% / 50% 50% 40% 60%;}
[data-theme="ext-light-aurora"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-aurora"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-aurora"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-aurora"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-aurora"] .stat-label{font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-aurora"] .album-item{position:relative;border-radius:30px 50px 30px 50px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(91,141,239,0.15);}
[data-theme="ext-light-aurora"] .album-item:nth-child(even){border-radius:50px 30px 50px 30px;}
[data-theme="ext-light-aurora"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-aurora"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-aurora"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-aurora"] .album-title{font-family:'Syne',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-aurora"] .album-meta{font-family:'Hanken Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-aurora"] .btn.primary{background:var(--accent);color:#fff;font-family:'Hanken Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-aurora"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-aurora"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Hanken Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-light-aurora"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-aurora"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-aurora"] .contact-card:nth-child(2){border-radius:40px 60px 40px 60px;}
[data-theme="ext-light-aurora"] .contact-card:nth-child(3){border-radius:60px 40px 60px 40px;}
[data-theme="ext-light-aurora"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-aurora"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 5% 0 0;}
[data-theme="ext-light-aurora"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-aurora"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-aurora"] .footer-links a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-aurora"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-aurora"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-aurora"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-aurora"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-aurora"] .stat-item{border-radius:30px 50px 30px 50px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-aurora"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-aurora"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-aurora"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-aurora"] .mobile-menu a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-light-aurora"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-aurora"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-aurora"] .ts-name{color:var(--text);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-light-aurora"] a{color:var(--accent);}
[data-theme="ext-light-aurora"] .eyebrow{color:var(--accent);font-family:'Hanken Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-aurora"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-cloud  (云端漫步 / Cloud Walk) [LIGHT]
   ============================================================ */

[data-theme="ext-light-cloud"]{
  --bg:#fafcff;--bg-2:#f0f5fa;--bg-3:#e8eef5;--bg-4:#dfe8f0;
  --text:#2a3a4a;--text-dim:#5a6a7a;--text-mid:#7a8a9a;
  --accent:#6cb4ef;--accent-glow:rgba(108,180,239,0.2);--white:#2a3a4a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafcffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'Source Sans 3',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-cloud"] body{background:#fafcff;color:#2a3a4a;font-family:'Source Sans 3',sans-serif;cursor:none;}
[data-theme="ext-light-cloud"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(ellipse at 50% 0%,rgba(108,180,239,0.2) 0%,transparent 50%);
}
[data-theme="ext-light-cloud"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-cloud"] .nav-link{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-cloud"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-cloud"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-cloud"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-cloud"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-cloud"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-cloud"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-cloud"] .hero > .hero-content,
[data-theme="ext-light-cloud"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_cloud_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-cloud"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-cloud"] .section-subtitle{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-cloud"] .about-img-wrapper{border-radius:55% 45% 50% 50% / 45% 55% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(108,180,239,0.12);}
[data-theme="ext-light-cloud"] .about-img-wrapper:hover{border-radius:45% 55% 50% 50% / 55% 45% 50% 50%;}
[data-theme="ext-light-cloud"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-cloud"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-cloud"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-cloud"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-cloud"] .stat-label{font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-cloud"] .album-item{position:relative;border-radius:35px 25px 30px 40px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(108,180,239,0.12);}
[data-theme="ext-light-cloud"] .album-item:nth-child(even){border-radius:40px 30px 25px 35px;}
[data-theme="ext-light-cloud"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-cloud"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-cloud"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-cloud"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-cloud"] .album-meta{font-family:'Source Sans 3',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-cloud"] .btn.primary{background:var(--accent);color:#fff;font-family:'Source Sans 3',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-cloud"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-cloud"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Source Sans 3',sans-serif;transition:var(--transition);}
[data-theme="ext-light-cloud"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-cloud"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-cloud"] .contact-card:nth-child(2){border-radius:45px 30px 40px 50px;}
[data-theme="ext-light-cloud"] .contact-card:nth-child(3){border-radius:50px 40px 30px 45px;}
[data-theme="ext-light-cloud"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-cloud"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:55% 45% 0 0 / 6% 7% 0 0;}
[data-theme="ext-light-cloud"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-cloud"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-cloud"] .footer-links a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-cloud"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-cloud"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-cloud"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-cloud"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-cloud"] .stat-item{border-radius:35px 25px 35px 25px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-cloud"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-cloud"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-cloud"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-cloud"] .mobile-menu a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-light-cloud"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-cloud"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-cloud"] .ts-name{color:var(--text);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-light-cloud"] a{color:var(--accent);}
[data-theme="ext-light-cloud"] .eyebrow{color:var(--accent);font-family:'Source Sans 3',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-cloud"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-petal  (花瓣轻舞 / Petal Dance) [LIGHT]
   ============================================================ */

[data-theme="ext-light-petal"]{
  --bg:#fff5f8;--bg-2:#fce8ef;--bg-3:#f5dde8;--bg-4:#eed0dc;
  --text:#3a1a2a;--text-dim:#6a4a5a;--text-mid:#8a6a7a;
  --accent:#e8709a;--accent-glow:rgba(232,112,154,0.25);--white:#3a1a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff5f8ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Pacifico',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-petal"] body{background:#fff5f8;color:#3a1a2a;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-light-petal"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 20% 30%,rgba(232,112,154,0.25) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(232,112,154,0.25) 0%,transparent 35%);
}
[data-theme="ext-light-petal"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-petal"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-petal"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-petal"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-petal"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-petal"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-petal"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-petal"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-petal"] .hero > .hero-content,
[data-theme="ext-light-petal"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_petal_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-petal"] .section-title{font-family:'Pacifico',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-petal"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-petal"] .about-img-wrapper{border-radius:50% 50% 60% 40% / 40% 60% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(232,112,154,0.15);}
[data-theme="ext-light-petal"] .about-img-wrapper:hover{border-radius:60% 40% 50% 50% / 50% 50% 40% 60%;}
[data-theme="ext-light-petal"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-petal"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-petal"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-petal"] .stat-num{font-family:'Pacifico',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-petal"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-petal"] .album-item{position:relative;border-radius:40px 10px 40px 10px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(232,112,154,0.15);}
[data-theme="ext-light-petal"] .album-item:nth-child(even){border-radius:10px 40px 10px 40px;}
[data-theme="ext-light-petal"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-petal"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-petal"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-petal"] .album-title{font-family:'Pacifico',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-petal"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-petal"] .btn.primary{background:var(--accent);color:#fff;font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-petal"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-petal"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-light-petal"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-petal"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-petal"] .contact-card:nth-child(2){border-radius:50px 15px 50px 15px;}
[data-theme="ext-light-petal"] .contact-card:nth-child(3){border-radius:15px 50px 15px 50px;}
[data-theme="ext-light-petal"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-petal"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 7% 7% 0 0;}
[data-theme="ext-light-petal"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-petal"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-petal"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-petal"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-petal"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-petal"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-petal"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-petal"] .stat-item{border-radius:40px 10px 40px 10px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-petal"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-petal"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-petal"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-petal"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-petal"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-petal"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-petal"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-petal"] a{color:var(--accent);}
[data-theme="ext-light-petal"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-petal"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-mint  (薄荷露珠 / Mint Dew) [LIGHT]
   ============================================================ */

[data-theme="ext-light-mint"]{
  --bg:#f0faf5;--bg-2:#e0f5ea;--bg-3:#d0eedd;--bg-4:#c0e4d0;
  --text:#0a3a2a;--text-dim:#3a6a5a;--text-mid:#5a8a7a;
  --accent:#3bcf8a;--accent-glow:rgba(59,207,138,0.25);--white:#0a3a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0faf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-mint"] body{background:#f0faf5;color:#0a3a2a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-light-mint"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 20%,rgba(59,207,138,0.25) 0%,transparent 30%),radial-gradient(circle at 70% 80%,rgba(59,207,138,0.25) 0%,transparent 25%);
}
[data-theme="ext-light-mint"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-mint"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-mint"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-mint"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-mint"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-mint"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-mint"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-mint"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-mint"] .hero > .hero-content,
[data-theme="ext-light-mint"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_mint_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-mint"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-mint"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-mint"] .about-img-wrapper{border-radius:50% 50% 65% 35% / 35% 65% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(59,207,138,0.12);}
[data-theme="ext-light-mint"] .about-img-wrapper:hover{border-radius:50% 50% 35% 65% / 65% 35% 50% 50%;}
[data-theme="ext-light-mint"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-mint"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-mint"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-mint"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-mint"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-mint"] .album-item{position:relative;border-radius:20px 45px 20px 45px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(59,207,138,0.12);}
[data-theme="ext-light-mint"] .album-item:nth-child(even){border-radius:45px 20px 45px 20px;}
[data-theme="ext-light-mint"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-mint"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-mint"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-mint"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-mint"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-mint"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-mint"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-mint"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-mint"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-mint"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-mint"] .contact-card:nth-child(2){border-radius:25px 55px 25px 55px;}
[data-theme="ext-light-mint"] .contact-card:nth-child(3){border-radius:55px 25px 55px 25px;}
[data-theme="ext-light-mint"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-mint"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 5% 8% 0 0;}
[data-theme="ext-light-mint"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-mint"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-mint"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-mint"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-mint"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-mint"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-mint"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-mint"] .stat-item{border-radius:20px 45px 20px 45px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-mint"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-mint"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-mint"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-mint"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-mint"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-mint"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-mint"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-mint"] a{color:var(--accent);}
[data-theme="ext-light-mint"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-mint"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pearl  (珍珠晨光 / Pearl Morning) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pearl"]{
  --bg:#fdfaf5;--bg-2:#f8f0e8;--bg-3:#f0e0d5;--bg-4:#e8d0c8;
  --text:#2a1a14;--text-dim:#5a4a44;--text-mid:#7a6a64;
  --accent:#c8a070;--accent-glow:rgba(200,160,112,0.25);--white:#2a1a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdfaf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Playfair Display',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pearl"] body{background:#fdfaf5;color:#2a1a14;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-light-pearl"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(200,160,112,0.25) 0%,transparent 50%);
}
[data-theme="ext-light-pearl"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pearl"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pearl"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pearl"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pearl"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pearl"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pearl"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pearl"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pearl"] .hero > .hero-content,
[data-theme="ext-light-pearl"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pearl_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pearl"] .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pearl"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pearl"] .about-img-wrapper{border-radius:50% 50% 50% 50% / 48% 48% 52% 52%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(200,160,112,0.12);}
[data-theme="ext-light-pearl"] .about-img-wrapper:hover{border-radius:48% 52% 48% 52% / 52% 48% 48% 52%;}
[data-theme="ext-light-pearl"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pearl"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pearl"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pearl"] .stat-num{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pearl"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pearl"] .album-item{position:relative;border-radius:30px 30px 30px 30px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(200,160,112,0.12);}
[data-theme="ext-light-pearl"] .album-item:nth-child(even){border-radius:35px 25px 35px 25px;}
[data-theme="ext-light-pearl"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pearl"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pearl"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pearl"] .album-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pearl"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pearl"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pearl"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pearl"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pearl"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pearl"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pearl"] .contact-card:nth-child(2){border-radius:40px 20px 40px 20px;}
[data-theme="ext-light-pearl"] .contact-card:nth-child(3){border-radius:20px 40px 20px 40px;}
[data-theme="ext-light-pearl"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pearl"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 4% 5% 0 0;}
[data-theme="ext-light-pearl"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pearl"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pearl"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pearl"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pearl"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pearl"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pearl"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pearl"] .stat-item{border-radius:30px 30px 30px 30px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pearl"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pearl"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pearl"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pearl"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-light-pearl"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pearl"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pearl"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-light-pearl"] a{color:var(--accent);}
[data-theme="ext-light-pearl"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pearl"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lavender  (薰衣草田 / Lavender Field) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lavender"]{
  --bg:#f5f0ff;--bg-2:#ebe0f5;--bg-3:#ddd0ee;--bg-4:#cfc0e4;
  --text:#2a1a3a;--text-dim:#5a4a6a;--text-mid:#7a6a8a;
  --accent:#8b6fd4;--accent-glow:rgba(139,111,212,0.25);--white:#2a1a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5f0ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Spectral',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lavender"] body{background:#f5f0ff;color:#2a1a3a;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-light-lavender"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 70%,rgba(139,111,212,0.25) 0%,transparent 20%),radial-gradient(circle at 70% 30%,rgba(139,111,212,0.25) 0%,transparent 20%);
}
[data-theme="ext-light-lavender"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lavender"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lavender"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lavender"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lavender"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lavender"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lavender"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lavender"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lavender"] .hero > .hero-content,
[data-theme="ext-light-lavender"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lavender_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lavender"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lavender"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lavender"] .about-img-wrapper{border-radius:45% 55% 55% 45% / 55% 45% 45% 55%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(139,111,212,0.12);}
[data-theme="ext-light-lavender"] .about-img-wrapper:hover{border-radius:55% 45% 45% 55% / 45% 55% 55% 45%;}
[data-theme="ext-light-lavender"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lavender"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lavender"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lavender"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lavender"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lavender"] .album-item{position:relative;border-radius:20px 35px 35px 20px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(139,111,212,0.12);}
[data-theme="ext-light-lavender"] .album-item:nth-child(even){border-radius:35px 20px 20px 35px;}
[data-theme="ext-light-lavender"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lavender"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lavender"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lavender"] .album-title{font-family:'Spectral',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lavender"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lavender"] .btn.primary{background:var(--accent);color:#fff;font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lavender"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lavender"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lavender"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lavender"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lavender"] .contact-card:nth-child(2){border-radius:25px 45px 45px 25px;}
[data-theme="ext-light-lavender"] .contact-card:nth-child(3){border-radius:45px 25px 25px 45px;}
[data-theme="ext-light-lavender"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lavender"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 6% 6% 0 0;}
[data-theme="ext-light-lavender"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lavender"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lavender"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lavender"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lavender"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lavender"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lavender"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lavender"] .stat-item{border-radius:20px 35px 20px 35px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lavender"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lavender"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lavender"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lavender"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-lavender"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lavender"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lavender"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-lavender"] a{color:var(--accent);}
[data-theme="ext-light-lavender"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lavender"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-honey  (蜂蜜暖阳 / Honey Warmth) [LIGHT]
   ============================================================ */

[data-theme="ext-light-honey"]{
  --bg:#fffdf0;--bg-2:#faf5e0;--bg-3:#f0e8c8;--bg-4:#e8dcab;
  --text:#3a2a0a;--text-dim:#6a5a3a;--text-mid:#8a7a5a;
  --accent:#d4a020;--accent-glow:rgba(212,160,32,0.25);--white:#3a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffdf0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fraunces',serif;--font-body:'Outfit',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-honey"] body{background:#fffdf0;color:#3a2a0a;font-family:'Outfit',sans-serif;cursor:none;}
[data-theme="ext-light-honey"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 0%,rgba(212,160,32,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-honey"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-honey"] .nav-link{color:var(--text-dim);font-family:'Outfit',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-honey"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-honey"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-honey"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-honey"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-honey"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-honey"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-honey"] .hero > .hero-content,
[data-theme="ext-light-honey"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_honey_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-honey"] .section-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-honey"] .section-subtitle{font-family:'Outfit',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-honey"] .about-img-wrapper{border-radius:60% 40% 55% 45% / 45% 55% 40% 60%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(212,160,32,0.12);}
[data-theme="ext-light-honey"] .about-img-wrapper:hover{border-radius:40% 60% 45% 55% / 55% 45% 60% 40%;}
[data-theme="ext-light-honey"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-honey"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-honey"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-honey"] .stat-num{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-honey"] .stat-label{font-family:'Outfit',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-honey"] .album-item{position:relative;border-radius:45px 20px 50px 25px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(212,160,32,0.12);}
[data-theme="ext-light-honey"] .album-item:nth-child(even){border-radius:25px 50px 20px 45px;}
[data-theme="ext-light-honey"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-honey"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-honey"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-honey"] .album-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-honey"] .album-meta{font-family:'Outfit',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-honey"] .btn.primary{background:var(--accent);color:#fff;font-family:'Outfit',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-honey"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-honey"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Outfit',sans-serif;transition:var(--transition);}
[data-theme="ext-light-honey"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-honey"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-honey"] .contact-card:nth-child(2){border-radius:55px 25px 60px 30px;}
[data-theme="ext-light-honey"] .contact-card:nth-child(3){border-radius:30px 60px 25px 55px;}
[data-theme="ext-light-honey"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-honey"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:40% 60% 0 0 / 5% 8% 0 0;}
[data-theme="ext-light-honey"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-honey"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-honey"] .footer-links a{color:var(--text-dim);font-family:'Outfit',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-honey"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-honey"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-honey"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-honey"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-honey"] .stat-item{border-radius:45px 20px 45px 20px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-honey"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-honey"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-honey"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-honey"] .mobile-menu a{color:var(--text-dim);font-family:'Outfit',sans-serif;}
[data-theme="ext-light-honey"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-honey"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-honey"] .ts-name{color:var(--text);font-family:'Outfit',sans-serif;}
[data-theme="ext-light-honey"] a{color:var(--accent);}
[data-theme="ext-light-honey"] .eyebrow{color:var(--accent);font-family:'Outfit',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-honey"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-coral  (珊瑚日出 / Coral Sunrise) [LIGHT]
   ============================================================ */

[data-theme="ext-light-coral"]{
  --bg:#fff8f5;--bg-2:#fce8e0;--bg-3:#f5d8cc;--bg-4:#eec5b8;
  --text:#3a1a14;--text-dim:#6a4a44;--text-mid:#8a6a64;
  --accent:#ff7855;--accent-glow:rgba(255,120,85,0.25);--white:#3a1a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-coral"] body{background:#fff8f5;color:#3a1a14;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-light-coral"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 100%,rgba(255,120,85,0.25) 0%,transparent 50%);
}
[data-theme="ext-light-coral"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-coral"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-coral"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-coral"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-coral"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-coral"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-coral"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-coral"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-coral"] .hero > .hero-content,
[data-theme="ext-light-coral"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_coral_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-coral"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-coral"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-coral"] .about-img-wrapper{border-radius:55% 45% 50% 50% / 45% 55% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,120,85,0.12);}
[data-theme="ext-light-coral"] .about-img-wrapper:hover{border-radius:45% 55% 50% 50% / 55% 45% 50% 50%;}
[data-theme="ext-light-coral"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-coral"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-coral"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-coral"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-coral"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-coral"] .album-item{position:relative;border-radius:30px 20px 35px 15px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,120,85,0.12);}
[data-theme="ext-light-coral"] .album-item:nth-child(even){border-radius:15px 35px 20px 30px;}
[data-theme="ext-light-coral"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-coral"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-coral"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-coral"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-coral"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-coral"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-coral"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-coral"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-coral"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-coral"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-coral"] .contact-card:nth-child(2){border-radius:40px 25px 45px 20px;}
[data-theme="ext-light-coral"] .contact-card:nth-child(3){border-radius:20px 45px 25px 40px;}
[data-theme="ext-light-coral"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-coral"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 6% 8% 0 0;}
[data-theme="ext-light-coral"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-coral"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-coral"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-coral"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-coral"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-coral"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-coral"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-coral"] .stat-item{border-radius:30px 20px 30px 20px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-coral"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-coral"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-coral"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-coral"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-coral"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-coral"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-coral"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-coral"] a{color:var(--accent);}
[data-theme="ext-light-coral"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-coral"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-sky  (晴空碧蓝 / Clear Sky) [LIGHT]
   ============================================================ */

[data-theme="ext-light-sky"]{
  --bg:#f0f8ff;--bg-2:#e0ecfa;--bg-3:#d0e0f5;--bg-4:#c0d4ee;
  --text:#0a2a4a;--text-dim:#3a5a7a;--text-mid:#5a7a9a;
  --accent:#3b82f6;--accent-glow:rgba(59,130,246,0.2);--white:#0a2a4a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0f8ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-sky"] body{background:#f0f8ff;color:#0a2a4a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-light-sky"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(135deg,rgba(59,130,246,0.2) 0%,transparent 40%);
}
[data-theme="ext-light-sky"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-sky"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-sky"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-sky"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-sky"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-sky"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-sky"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-sky"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-sky"] .hero > .hero-content,
[data-theme="ext-light-sky"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_sky_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-sky"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-sky"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-sky"] .about-img-wrapper{border-radius:50% 50% 55% 45% / 45% 55% 50% 50%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(59,130,246,0.1);}
[data-theme="ext-light-sky"] .about-img-wrapper:hover{border-radius:50% 50% 45% 55% / 55% 45% 50% 50%;}
[data-theme="ext-light-sky"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-sky"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-sky"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-sky"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-sky"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-sky"] .album-item{position:relative;border-radius:15px 40px 20px 45px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(59,130,246,0.1);}
[data-theme="ext-light-sky"] .album-item:nth-child(even){border-radius:45px 20px 40px 15px;}
[data-theme="ext-light-sky"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-sky"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-sky"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-sky"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-sky"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-sky"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-sky"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-sky"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-light-sky"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-sky"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-sky"] .contact-card:nth-child(2){border-radius:20px 50px 25px 55px;}
[data-theme="ext-light-sky"] .contact-card:nth-child(3){border-radius:55px 25px 50px 20px;}
[data-theme="ext-light-sky"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-sky"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:45% 55% 0 0 / 5% 7% 0 0;}
[data-theme="ext-light-sky"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-sky"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-sky"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-sky"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-sky"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-sky"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-sky"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-sky"] .stat-item{border-radius:15px 40px 15px 40px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-sky"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-sky"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-sky"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-sky"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-light-sky"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-sky"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-sky"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-light-sky"] a{color:var(--accent);}
[data-theme="ext-light-sky"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-sky"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-sage  (鼠尾草绿 / Sage Green) [LIGHT]
   ============================================================ */

[data-theme="ext-light-sage"]{
  --bg:#f5f8f0;--bg-2:#ebf0e5;--bg-3:#dde5d5;--bg-4:#cedac5;
  --text:#1a2a14;--text-dim:#4a5a44;--text-mid:#6a7a64;
  --accent:#7aad5a;--accent-glow:rgba(122,173,90,0.25);--white:#1a2a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5f8f0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cinzel',serif;--font-body:'Karla',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-sage"] body{background:#f5f8f0;color:#1a2a14;font-family:'Karla',sans-serif;cursor:none;}
[data-theme="ext-light-sage"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(180deg,rgba(122,173,90,0.25) 0%,transparent 60%);
}
[data-theme="ext-light-sage"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-sage"] .nav-link{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-sage"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-sage"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-sage"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-sage"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-sage"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-sage"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-sage"] .hero > .hero-content,
[data-theme="ext-light-sage"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_sage_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-sage"] .section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-sage"] .section-subtitle{font-family:'Karla',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-sage"] .about-img-wrapper{border-radius:40% 60% 50% 50% / 50% 50% 60% 40%;overflow:hidden;transition:border-radius 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(122,173,90,0.1);}
[data-theme="ext-light-sage"] .about-img-wrapper:hover{border-radius:60% 40% 50% 50% / 50% 50% 40% 60%;}
[data-theme="ext-light-sage"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-sage"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-sage"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-sage"] .stat-num{font-family:'Cinzel',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-sage"] .stat-label{font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-sage"] .album-item{position:relative;border-radius:25px 35px 25px 35px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(122,173,90,0.1);}
[data-theme="ext-light-sage"] .album-item:nth-child(even){border-radius:35px 25px 35px 25px;}
[data-theme="ext-light-sage"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-sage"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-sage"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-sage"] .album-title{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-sage"] .album-meta{font-family:'Karla',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-sage"] .btn.primary{background:var(--accent);color:#fff;font-family:'Karla',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-sage"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-sage"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Karla',sans-serif;transition:var(--transition);}
[data-theme="ext-light-sage"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-sage"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-sage"] .contact-card:nth-child(2){border-radius:30px 45px 30px 45px;}
[data-theme="ext-light-sage"] .contact-card:nth-child(3){border-radius:45px 30px 45px 30px;}
[data-theme="ext-light-sage"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-sage"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;border-radius:50% 50% 0 0 / 4% 6% 0 0;}
[data-theme="ext-light-sage"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-sage"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-sage"] .footer-links a{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-sage"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-sage"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-sage"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-sage"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-sage"] .stat-item{border-radius:25px 35px 25px 35px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-sage"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-sage"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-sage"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-sage"] .mobile-menu a{color:var(--text-dim);font-family:'Karla',sans-serif;}
[data-theme="ext-light-sage"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-sage"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-sage"] .ts-name{color:var(--text);font-family:'Karla',sans-serif;}
[data-theme="ext-light-sage"] a{color:var(--accent);}
[data-theme="ext-light-sage"] .eyebrow{color:var(--accent);font-family:'Karla',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-sage"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-sakura  (樱花少女 / Sakura Girl) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-sakura"]{
  --bg:#fff0f5;--bg-2:#fce0ec;--bg-3:#f5d0e0;--bg-4:#eec0d4;
  --text:#3a1a2a;--text-dim:#6a4a5a;--text-mid:#8a6a7a;
  --accent:#ff6b9d;--accent-glow:rgba(255,107,157,0.3);--white:#3a1a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff0f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Pacifico',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-sakura"] body{background:#fff0f5;color:#3a1a2a;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-light-girl-sakura"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 20% 30%,rgba(255,107,157,0.3) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(255,107,157,0.3) 0%,transparent 35%);
}
[data-theme="ext-light-girl-sakura"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-sakura"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-sakura"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-sakura"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-sakura"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-sakura"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-sakura"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-sakura"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-sakura"] .hero > .hero-content,
[data-theme="ext-light-girl-sakura"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_sakura_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-sakura"] .section-title{font-family:'Pacifico',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-sakura"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-sakura"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,107,157,0.15);}
[data-theme="ext-light-girl-sakura"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,107,157,0.15);}
[data-theme="ext-light-girl-sakura"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-sakura"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-sakura"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-sakura"] .stat-num{font-family:'Pacifico',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-sakura"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-sakura"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,107,157,0.15);}

[data-theme="ext-light-girl-sakura"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-sakura"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-sakura"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-sakura"] .album-title{font-family:'Pacifico',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-sakura"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-sakura"] .btn.primary{background:var(--accent);color:#fff;font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-sakura"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-sakura"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-sakura"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-sakura"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,107,157,0.15);}


[data-theme="ext-light-girl-sakura"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-sakura"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-sakura"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-sakura"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-sakura"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-sakura"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-sakura"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-sakura"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-sakura"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-sakura"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,107,157,0.15);}
[data-theme="ext-light-girl-sakura"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-sakura"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-sakura"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-sakura"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-girl-sakura"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-sakura"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-sakura"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-girl-sakura"] a{color:var(--accent);}
[data-theme="ext-light-girl-sakura"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-sakura"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-peach  (蜜桃女孩 / Peach Girl) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-peach"]{
  --bg:#fff5f0;--bg-2:#ffe8e0;--bg-3:#ffd8cc;--bg-4:#ffc5b8;
  --text:#3a2014;--text-dim:#6a5044;--text-mid:#8a7064;
  --accent:#ff8855;--accent-glow:rgba(255,136,85,0.3);--white:#3a2014;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff5f0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fredoka',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-peach"] body{background:#fff5f0;color:#3a2014;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-light-girl-peach"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,136,85,0.3) 0%,transparent 40%);
}
[data-theme="ext-light-girl-peach"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-peach"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-peach"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-peach"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-peach"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-peach"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-peach"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-peach"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-peach"] .hero > .hero-content,
[data-theme="ext-light-girl-peach"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_peach_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-peach"] .section-title{font-family:'Fredoka',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-peach"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-peach"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(255,136,85,0.12);}
[data-theme="ext-light-girl-peach"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(255,136,85,0.12);}
[data-theme="ext-light-girl-peach"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-peach"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-peach"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-peach"] .stat-num{font-family:'Fredoka',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-peach"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-peach"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(255,136,85,0.12);}

[data-theme="ext-light-girl-peach"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-peach"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-peach"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-peach"] .album-title{font-family:'Fredoka',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-peach"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-peach"] .btn.primary{background:var(--accent);color:#fff;font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-peach"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-peach"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-peach"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-peach"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,136,85,0.12);}


[data-theme="ext-light-girl-peach"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-peach"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-peach"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-peach"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-peach"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-peach"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-peach"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-peach"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-peach"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-peach"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,136,85,0.12);}
[data-theme="ext-light-girl-peach"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-peach"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-peach"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-peach"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-girl-peach"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-peach"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-peach"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-girl-peach"] a{color:var(--accent);}
[data-theme="ext-light-girl-peach"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-peach"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-cotton  (棉花糖女孩 / Cotton Girl) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-cotton"]{
  --bg:#faf5ff;--bg-2:#f0e8fc;--bg-3:#e8dcf5;--bg-4:#dcccec;
  --text:#2a1a3a;--text-dim:#5a4a6a;--text-mid:#7a6a8a;
  --accent:#c084fc;--accent-glow:rgba(192,132,252,0.3);--white:#2a1a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faf5ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Caveat',serif;--font-body:'Comfortaa',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-cotton"] body{background:#faf5ff;color:#2a1a3a;font-family:'Comfortaa',sans-serif;cursor:none;}
[data-theme="ext-light-girl-cotton"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(ellipse at 50% 0%,rgba(192,132,252,0.3) 0%,transparent 50%);
}
[data-theme="ext-light-girl-cotton"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-cotton"] .nav-link{color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-cotton"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-cotton"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-cotton"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-cotton"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-cotton"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-cotton"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-cotton"] .hero > .hero-content,
[data-theme="ext-light-girl-cotton"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_cotton_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-cotton"] .section-title{font-family:'Caveat',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-cotton"] .section-subtitle{font-family:'Comfortaa',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-cotton"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(192,132,252,0.12);}
[data-theme="ext-light-girl-cotton"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(192,132,252,0.12);}
[data-theme="ext-light-girl-cotton"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-cotton"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-cotton"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-cotton"] .stat-num{font-family:'Caveat',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-cotton"] .stat-label{font-family:'Comfortaa',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-cotton"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(192,132,252,0.12);}

[data-theme="ext-light-girl-cotton"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-cotton"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-cotton"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-cotton"] .album-title{font-family:'Caveat',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-cotton"] .album-meta{font-family:'Comfortaa',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-cotton"] .btn.primary{background:var(--accent);color:#fff;font-family:'Comfortaa',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-cotton"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-cotton"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Comfortaa',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-cotton"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-cotton"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(192,132,252,0.12);}


[data-theme="ext-light-girl-cotton"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-cotton"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-cotton"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-cotton"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-cotton"] .footer-links a{color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-cotton"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-cotton"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-cotton"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-cotton"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-cotton"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(192,132,252,0.12);}
[data-theme="ext-light-girl-cotton"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-cotton"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-cotton"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-cotton"] .mobile-menu a{color:var(--text-dim);font-family:'Comfortaa',sans-serif;}
[data-theme="ext-light-girl-cotton"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-cotton"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-cotton"] .ts-name{color:var(--text);font-family:'Comfortaa',sans-serif;}
[data-theme="ext-light-girl-cotton"] a{color:var(--accent);}
[data-theme="ext-light-girl-cotton"] .eyebrow{color:var(--accent);font-family:'Comfortaa',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-cotton"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-berry  (莓果甜心 / Berry Sweet) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-berry"]{
  --bg:#fff8f8;--bg-2:#fce8ec;--bg-3:#f5d8e0;--bg-4:#eec5d4;
  --text:#3a1424;--text-dim:#6a3a54;--text-mid:#8a5a74;
  --accent:#e8456a;--accent-glow:rgba(232,69,106,0.3);--white:#3a1424;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f8ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Gloria Hallelujah',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-berry"] body{background:#fff8f8;color:#3a1424;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-light-girl-berry"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 25% 40%,rgba(232,69,106,0.3) 0%,transparent 35%),radial-gradient(circle at 75% 60%,rgba(232,69,106,0.3) 0%,transparent 30%);
}
[data-theme="ext-light-girl-berry"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-berry"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-berry"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-berry"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-berry"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-berry"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-berry"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-berry"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-berry"] .hero > .hero-content,
[data-theme="ext-light-girl-berry"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_berry_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-berry"] .section-title{font-family:'Gloria Hallelujah',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-berry"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-berry"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(232,69,106,0.12);}
[data-theme="ext-light-girl-berry"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(232,69,106,0.12);}
[data-theme="ext-light-girl-berry"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-berry"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-berry"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-berry"] .stat-num{font-family:'Gloria Hallelujah',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-berry"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-berry"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(232,69,106,0.12);}

[data-theme="ext-light-girl-berry"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-berry"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-berry"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-berry"] .album-title{font-family:'Gloria Hallelujah',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-berry"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-berry"] .btn.primary{background:var(--accent);color:#fff;font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-berry"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-berry"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-berry"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-berry"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(232,69,106,0.12);}


[data-theme="ext-light-girl-berry"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-berry"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-berry"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-berry"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-berry"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-berry"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-berry"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-berry"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-berry"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-berry"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(232,69,106,0.12);}
[data-theme="ext-light-girl-berry"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-berry"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-berry"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-berry"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-girl-berry"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-berry"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-berry"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-girl-berry"] a{color:var(--accent);}
[data-theme="ext-light-girl-berry"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-berry"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-lemon  (柠檬汽水 / Lemon Soda) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-lemon"]{
  --bg:#fffef5;--bg-2:#faf8e0;--bg-3:#f0ecbb;--bg-4:#e8e0a0;
  --text:#3a3a0a;--text-dim:#6a6a3a;--text-mid:#8a8a5a;
  --accent:#d4c020;--accent-glow:rgba(212,192,32,0.3);--white:#3a3a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffef5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Sniglet',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-lemon"] body{background:#fffef5;color:#3a3a0a;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-light-girl-lemon"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(212,192,32,0.3) 0%,transparent 40%);
}
[data-theme="ext-light-girl-lemon"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-lemon"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-lemon"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-lemon"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-lemon"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-lemon"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-lemon"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-lemon"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-lemon"] .hero > .hero-content,
[data-theme="ext-light-girl-lemon"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_lemon_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-lemon"] .section-title{font-family:'Sniglet',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-lemon"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-lemon"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(212,192,32,0.1);}
[data-theme="ext-light-girl-lemon"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(212,192,32,0.1);}
[data-theme="ext-light-girl-lemon"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-lemon"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-lemon"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-lemon"] .stat-num{font-family:'Sniglet',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-lemon"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-lemon"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(212,192,32,0.1);}

[data-theme="ext-light-girl-lemon"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-lemon"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-lemon"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-lemon"] .album-title{font-family:'Sniglet',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-lemon"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-lemon"] .btn.primary{background:var(--accent);color:#fff;font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-lemon"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-lemon"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-lemon"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-lemon"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(212,192,32,0.1);}


[data-theme="ext-light-girl-lemon"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-lemon"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-lemon"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-lemon"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-lemon"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-lemon"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-lemon"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-lemon"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-lemon"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-lemon"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(212,192,32,0.1);}
[data-theme="ext-light-girl-lemon"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-lemon"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-lemon"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-lemon"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-girl-lemon"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-lemon"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-lemon"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-girl-lemon"] a{color:var(--accent);}
[data-theme="ext-light-girl-lemon"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-lemon"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-icing  (糖霜甜甜 / Icing Sweet) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-icing"]{
  --bg:#fef8fa;--bg-2:#faeef2;--bg-3:#f5e0e8;--bg-4:#eed0dc;
  --text:#3a2028;--text-dim:#6a5058;--text-mid:#8a7078;
  --accent:#f0a0b8;--accent-glow:rgba(240,160,184,0.3);--white:#3a2028;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fef8faee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Patrick Hand',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-icing"] body{background:#fef8fa;color:#3a2028;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-light-girl-icing"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(240,160,184,0.3) 0%,transparent 40%);
}
[data-theme="ext-light-girl-icing"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-icing"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-icing"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-icing"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-icing"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-icing"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-icing"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-icing"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-icing"] .hero > .hero-content,
[data-theme="ext-light-girl-icing"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_icing_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-icing"] .section-title{font-family:'Patrick Hand',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-icing"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-icing"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(240,160,184,0.12);}
[data-theme="ext-light-girl-icing"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(240,160,184,0.12);}
[data-theme="ext-light-girl-icing"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-icing"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-icing"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-icing"] .stat-num{font-family:'Patrick Hand',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-icing"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-icing"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(240,160,184,0.12);}

[data-theme="ext-light-girl-icing"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-icing"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-icing"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-icing"] .album-title{font-family:'Patrick Hand',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-icing"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-icing"] .btn.primary{background:var(--accent);color:#fff;font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-icing"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-icing"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-icing"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-icing"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(240,160,184,0.12);}


[data-theme="ext-light-girl-icing"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-icing"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-icing"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-icing"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-icing"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-icing"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-icing"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-icing"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-icing"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-icing"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(240,160,184,0.12);}
[data-theme="ext-light-girl-icing"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-icing"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-icing"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-icing"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-girl-icing"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-icing"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-icing"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-light-girl-icing"] a{color:var(--accent);}
[data-theme="ext-light-girl-icing"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-icing"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-mango  (芒果布丁 / Mango Pudding) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-mango"]{
  --bg:#fffdf0;--bg-2:#faf5d8;--bg-3:#f0e8b5;--bg-4:#e8dc90;
  --text:#3a2a0a;--text-dim:#6a5a3a;--text-mid:#8a7a5a;
  --accent:#ffa830;--accent-glow:rgba(255,168,48,0.3);--white:#3a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffdf0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Luckiest Guy',serif;--font-body:'Fredoka',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-mango"] body{background:#fffdf0;color:#3a2a0a;font-family:'Fredoka',sans-serif;cursor:none;}
[data-theme="ext-light-girl-mango"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 0%,rgba(255,168,48,0.3) 0%,transparent 40%);
}
[data-theme="ext-light-girl-mango"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-mango"] .nav-link{color:var(--text-dim);font-family:'Fredoka',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-mango"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-mango"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-mango"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-mango"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-mango"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-mango"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-mango"] .hero > .hero-content,
[data-theme="ext-light-girl-mango"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_mango_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-mango"] .section-title{font-family:'Luckiest Guy',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-mango"] .section-subtitle{font-family:'Fredoka',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-mango"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,168,48,0.12);}
[data-theme="ext-light-girl-mango"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,168,48,0.12);}
[data-theme="ext-light-girl-mango"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-mango"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-mango"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-mango"] .stat-num{font-family:'Luckiest Guy',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-mango"] .stat-label{font-family:'Fredoka',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-mango"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,168,48,0.12);}

[data-theme="ext-light-girl-mango"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-mango"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-mango"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-mango"] .album-title{font-family:'Luckiest Guy',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-mango"] .album-meta{font-family:'Fredoka',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-mango"] .btn.primary{background:var(--accent);color:#fff;font-family:'Fredoka',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-mango"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-mango"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Fredoka',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-mango"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-mango"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,168,48,0.12);}


[data-theme="ext-light-girl-mango"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-mango"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-mango"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-mango"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-mango"] .footer-links a{color:var(--text-dim);font-family:'Fredoka',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-mango"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-mango"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-mango"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-mango"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-mango"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,168,48,0.12);}
[data-theme="ext-light-girl-mango"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-mango"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-mango"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-mango"] .mobile-menu a{color:var(--text-dim);font-family:'Fredoka',sans-serif;}
[data-theme="ext-light-girl-mango"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-mango"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-mango"] .ts-name{color:var(--text);font-family:'Fredoka',sans-serif;}
[data-theme="ext-light-girl-mango"] a{color:var(--accent);}
[data-theme="ext-light-girl-mango"] .eyebrow{color:var(--accent);font-family:'Fredoka',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-mango"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-girl-bubble  (泡泡精灵 / Bubble Fairy) [LIGHT]
   ============================================================ */

[data-theme="ext-light-girl-bubble"]{
  --bg:#f8faff;--bg-2:#eef0fa;--bg-3:#e0e5f5;--bg-4:#d0d8ee;
  --text:#1a2a3a;--text-dim:#4a5a6a;--text-mid:#6a7a8a;
  --accent:#60a5fa;--accent-glow:rgba(96,165,250,0.3);--white:#1a2a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f8faffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Indie Flower',serif;--font-body:'Comfortaa',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-girl-bubble"] body{background:#f8faff;color:#1a2a3a;font-family:'Comfortaa',sans-serif;cursor:none;}
[data-theme="ext-light-girl-bubble"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 20%,rgba(96,165,250,0.3) 0%,transparent 30%),radial-gradient(circle at 70% 80%,rgba(96,165,250,0.3) 0%,transparent 25%);
}
[data-theme="ext-light-girl-bubble"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-girl-bubble"] .nav-link{color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-girl-bubble"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-girl-bubble"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-girl-bubble"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-girl-bubble"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-girl-bubble"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-girl-bubble"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-girl-bubble"] .hero > .hero-content,
[data-theme="ext-light-girl-bubble"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_girl_bubble_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-girl-bubble"] .section-title{font-family:'Indie Flower',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-bubble"] .section-subtitle{font-family:'Comfortaa',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-girl-bubble"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(96,165,250,0.12);}
[data-theme="ext-light-girl-bubble"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(96,165,250,0.12);}
[data-theme="ext-light-girl-bubble"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-girl-bubble"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-girl-bubble"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-girl-bubble"] .stat-num{font-family:'Indie Flower',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-girl-bubble"] .stat-label{font-family:'Comfortaa',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-girl-bubble"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(96,165,250,0.12);}

[data-theme="ext-light-girl-bubble"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-girl-bubble"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-girl-bubble"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-girl-bubble"] .album-title{font-family:'Indie Flower',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-girl-bubble"] .album-meta{font-family:'Comfortaa',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-girl-bubble"] .btn.primary{background:var(--accent);color:#fff;font-family:'Comfortaa',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-girl-bubble"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-girl-bubble"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Comfortaa',sans-serif;transition:var(--transition);}
[data-theme="ext-light-girl-bubble"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-girl-bubble"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(96,165,250,0.12);}


[data-theme="ext-light-girl-bubble"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-bubble"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-girl-bubble"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-girl-bubble"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-girl-bubble"] .footer-links a{color:var(--text-dim);font-family:'Comfortaa',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-girl-bubble"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-girl-bubble"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-girl-bubble"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-bubble"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-girl-bubble"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(96,165,250,0.12);}
[data-theme="ext-light-girl-bubble"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-girl-bubble"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-girl-bubble"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-girl-bubble"] .mobile-menu a{color:var(--text-dim);font-family:'Comfortaa',sans-serif;}
[data-theme="ext-light-girl-bubble"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-girl-bubble"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-girl-bubble"] .ts-name{color:var(--text);font-family:'Comfortaa',sans-serif;}
[data-theme="ext-light-girl-bubble"] a{color:var(--accent);}
[data-theme="ext-light-girl-bubble"] .eyebrow{color:var(--accent);font-family:'Comfortaa',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-girl-bubble"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-rose  (玫瑰庭院 / Rose Garden) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-rose"]{
  --bg:#fdf5f5;--bg-2:#f8e8e8;--bg-3:#f0d8d8;--bg-4:#e8c5c5;
  --text:#3a1a1a;--text-dim:#6a4a4a;--text-mid:#8a6a6a;
  --accent:#c62828;--accent-glow:rgba(198,40,40,0.2);--white:#3a1a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdf5f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-rose"] body{background:#fdf5f5;color:#3a1a1a;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-light-lady-rose"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 25% 40%,rgba(198,40,40,0.2) 0%,transparent 35%),radial-gradient(circle at 75% 60%,rgba(198,40,40,0.2) 0%,transparent 30%);
}
[data-theme="ext-light-lady-rose"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-rose"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-rose"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-rose"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-rose"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-rose"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-rose"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-rose"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-rose"] .hero > .hero-content,
[data-theme="ext-light-lady-rose"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_rose_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-rose"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-rose"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-rose"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(198,40,40,0.08);}
[data-theme="ext-light-lady-rose"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(198,40,40,0.08);}
[data-theme="ext-light-lady-rose"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-rose"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-rose"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-rose"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-rose"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-rose"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(198,40,40,0.08);}

[data-theme="ext-light-lady-rose"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-rose"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-rose"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-rose"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-rose"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-rose"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-rose"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-rose"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-rose"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-rose"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(198,40,40,0.08);}


[data-theme="ext-light-lady-rose"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-rose"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-rose"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-rose"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-rose"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-rose"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-rose"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-rose"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-rose"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-rose"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(198,40,40,0.08);}
[data-theme="ext-light-lady-rose"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-rose"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-rose"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-rose"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-light-lady-rose"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-rose"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-rose"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-light-lady-rose"] a{color:var(--accent);}
[data-theme="ext-light-lady-rose"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-rose"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-champagne  (香槟金辉 / Champagne Gold) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-champagne"]{
  --bg:#fdfaf3;--bg-2:#f8f0e0;--bg-3:#f0e5cc;--bg-4:#e8dab5;
  --text:#2a2410;--text-dim:#5a4a30;--text-mid:#7a6a50;
  --accent:#c8a44e;--accent-glow:rgba(200,164,78,0.25);--white:#2a2410;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdfaf3ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'Spectral',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-champagne"] body{background:#fdfaf3;color:#2a2410;font-family:'Spectral',sans-serif;cursor:none;}
[data-theme="ext-light-lady-champagne"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(200,164,78,0.25) 0%,transparent 50%);
}
[data-theme="ext-light-lady-champagne"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-champagne"] .nav-link{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-champagne"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-champagne"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-champagne"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-champagne"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-champagne"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-champagne"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-champagne"] .hero > .hero-content,
[data-theme="ext-light-lady-champagne"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_champagne_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-champagne"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-champagne"] .section-subtitle{font-family:'Spectral',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-champagne"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(200,164,78,0.1);}
[data-theme="ext-light-lady-champagne"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(200,164,78,0.1);}
[data-theme="ext-light-lady-champagne"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-champagne"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-champagne"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-champagne"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-champagne"] .stat-label{font-family:'Spectral',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-champagne"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(200,164,78,0.1);}

[data-theme="ext-light-lady-champagne"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-champagne"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-champagne"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-champagne"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-champagne"] .album-meta{font-family:'Spectral',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-champagne"] .btn.primary{background:var(--accent);color:#fff;font-family:'Spectral',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-champagne"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-champagne"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Spectral',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-champagne"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-champagne"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(200,164,78,0.1);}


[data-theme="ext-light-lady-champagne"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-champagne"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-champagne"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-champagne"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-champagne"] .footer-links a{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-champagne"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-champagne"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-champagne"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-champagne"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-champagne"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(200,164,78,0.1);}
[data-theme="ext-light-lady-champagne"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-champagne"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-champagne"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-champagne"] .mobile-menu a{color:var(--text-dim);font-family:'Spectral',sans-serif;}
[data-theme="ext-light-lady-champagne"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-champagne"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-champagne"] .ts-name{color:var(--text);font-family:'Spectral',sans-serif;}
[data-theme="ext-light-lady-champagne"] a{color:var(--accent);}
[data-theme="ext-light-lady-champagne"] .eyebrow{color:var(--accent);font-family:'Spectral',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-champagne"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-mauve  (紫藤雅致 / Wisteria Grace) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-mauve"]{
  --bg:#faf5fc;--bg-2:#f0e8f5;--bg-3:#e5d8ee;--bg-4:#d8c8e0;
  --text:#2a1a2e;--text-dim:#5a4a5e;--text-mid:#7a6a7e;
  --accent:#9c6abf;--accent-glow:rgba(156,106,191,0.25);--white:#2a1a2e;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faf5fcee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Libre Baskerville',serif;--font-body:'Crimson Text',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-mauve"] body{background:#faf5fc;color:#2a1a2e;font-family:'Crimson Text',sans-serif;cursor:none;}
[data-theme="ext-light-lady-mauve"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 70%,rgba(156,106,191,0.25) 0%,transparent 20%),radial-gradient(circle at 70% 30%,rgba(156,106,191,0.25) 0%,transparent 20%);
}
[data-theme="ext-light-lady-mauve"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-mauve"] .nav-link{color:var(--text-dim);font-family:'Crimson Text',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-mauve"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-mauve"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-mauve"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-mauve"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-mauve"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-mauve"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-mauve"] .hero > .hero-content,
[data-theme="ext-light-lady-mauve"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_mauve_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-mauve"] .section-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-mauve"] .section-subtitle{font-family:'Crimson Text',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-mauve"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(156,106,191,0.1);}
[data-theme="ext-light-lady-mauve"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(156,106,191,0.1);}
[data-theme="ext-light-lady-mauve"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-mauve"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-mauve"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-mauve"] .stat-num{font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-mauve"] .stat-label{font-family:'Crimson Text',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-mauve"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(156,106,191,0.1);}

[data-theme="ext-light-lady-mauve"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-mauve"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-mauve"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-mauve"] .album-title{font-family:'Libre Baskerville',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-mauve"] .album-meta{font-family:'Crimson Text',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-mauve"] .btn.primary{background:var(--accent);color:#fff;font-family:'Crimson Text',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-mauve"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-mauve"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Crimson Text',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-mauve"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-mauve"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(156,106,191,0.1);}


[data-theme="ext-light-lady-mauve"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-mauve"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-mauve"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-mauve"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-mauve"] .footer-links a{color:var(--text-dim);font-family:'Crimson Text',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-mauve"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-mauve"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-mauve"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-mauve"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-mauve"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(156,106,191,0.1);}
[data-theme="ext-light-lady-mauve"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-mauve"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-mauve"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-mauve"] .mobile-menu a{color:var(--text-dim);font-family:'Crimson Text',sans-serif;}
[data-theme="ext-light-lady-mauve"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-mauve"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-mauve"] .ts-name{color:var(--text);font-family:'Crimson Text',sans-serif;}
[data-theme="ext-light-lady-mauve"] a{color:var(--accent);}
[data-theme="ext-light-lady-mauve"] .eyebrow{color:var(--accent);font-family:'Crimson Text',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-mauve"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-cream  (奶油古典 / Cream Classic) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-cream"]{
  --bg:#fdfbf5;--bg-2:#f8f3e8;--bg-3:#f0e8d5;--bg-4:#e8dcc0;
  --text:#2a2014;--text-dim:#5a4a34;--text-mid:#7a6a54;
  --accent:#b8956a;--accent-glow:rgba(184,149,106,0.25);--white:#2a2014;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdfbf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Playfair Display',serif;--font-body:'DM Serif Display',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-cream"] body{background:#fdfbf5;color:#2a2014;font-family:'DM Serif Display',sans-serif;cursor:none;}
[data-theme="ext-light-lady-cream"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(184,149,106,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-lady-cream"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-cream"] .nav-link{color:var(--text-dim);font-family:'DM Serif Display',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-cream"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-cream"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-cream"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-cream"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-cream"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-cream"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-cream"] .hero > .hero-content,
[data-theme="ext-light-lady-cream"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_cream_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-cream"] .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-cream"] .section-subtitle{font-family:'DM Serif Display',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-cream"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 12px rgba(184,149,106,0.08);}
[data-theme="ext-light-lady-cream"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 12px rgba(184,149,106,0.08);}
[data-theme="ext-light-lady-cream"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-cream"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-cream"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-cream"] .stat-num{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-cream"] .stat-label{font-family:'DM Serif Display',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-cream"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 12px rgba(184,149,106,0.08);}

[data-theme="ext-light-lady-cream"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-cream"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-cream"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-cream"] .album-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-cream"] .album-meta{font-family:'DM Serif Display',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-cream"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Serif Display',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-cream"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-cream"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Serif Display',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-cream"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-cream"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(184,149,106,0.08);}


[data-theme="ext-light-lady-cream"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-cream"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-cream"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-cream"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-cream"] .footer-links a{color:var(--text-dim);font-family:'DM Serif Display',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-cream"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-cream"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-cream"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-cream"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-cream"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(184,149,106,0.08);}
[data-theme="ext-light-lady-cream"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-cream"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-cream"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-cream"] .mobile-menu a{color:var(--text-dim);font-family:'DM Serif Display',sans-serif;}
[data-theme="ext-light-lady-cream"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-cream"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-cream"] .ts-name{color:var(--text);font-family:'DM Serif Display',sans-serif;}
[data-theme="ext-light-lady-cream"] a{color:var(--accent);}
[data-theme="ext-light-lady-cream"] .eyebrow{color:var(--accent);font-family:'DM Serif Display',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-cream"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-blush  (腮红羞涩 / Blush Shy) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-blush"]{
  --bg:#fef8f6;--bg-2:#faecec;--bg-3:#f5dcdc;--bg-4:#eec8c8;
  --text:#3a2020;--text-dim:#6a4a4a;--text-mid:#8a6a6a;
  --accent:#e08080;--accent-glow:rgba(224,128,128,0.25);--white:#3a2020;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fef8f6ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-blush"] body{background:#fef8f6;color:#3a2020;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-light-lady-blush"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 25% 40%,rgba(224,128,128,0.25) 0%,transparent 35%),radial-gradient(circle at 75% 60%,rgba(224,128,128,0.25) 0%,transparent 30%);
}
[data-theme="ext-light-lady-blush"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-blush"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-blush"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-blush"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-blush"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-blush"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-blush"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-blush"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-blush"] .hero > .hero-content,
[data-theme="ext-light-lady-blush"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_blush_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-blush"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-blush"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-blush"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(224,128,128,0.1);}
[data-theme="ext-light-lady-blush"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(224,128,128,0.1);}
[data-theme="ext-light-lady-blush"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-blush"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-blush"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-blush"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-blush"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-blush"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(224,128,128,0.1);}

[data-theme="ext-light-lady-blush"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-blush"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-blush"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-blush"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-blush"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-blush"] .btn.primary{background:var(--accent);color:#fff;font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-blush"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-blush"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-blush"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-blush"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(224,128,128,0.1);}


[data-theme="ext-light-lady-blush"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-blush"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-blush"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-blush"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-blush"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-blush"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-blush"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-blush"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-blush"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-blush"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(224,128,128,0.1);}
[data-theme="ext-light-lady-blush"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-blush"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-blush"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-blush"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-lady-blush"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-blush"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-blush"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-lady-blush"] a{color:var(--accent);}
[data-theme="ext-light-lady-blush"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-blush"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-silk  (丝绸流光 / Silk Flow) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-silk"]{
  --bg:#fafafc;--bg-2:#f0f0f5;--bg-3:#e5e5ec;--bg-4:#d8d8e0;
  --text:#1a1a2e;--text-dim:#4a4a5e;--text-mid:#6a6a7e;
  --accent:#7070d0;--accent-glow:rgba(112,112,208,0.2);--white:#1a1a2e;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafafcee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'Karla',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-silk"] body{background:#fafafc;color:#1a1a2e;font-family:'Karla',sans-serif;cursor:none;}
[data-theme="ext-light-lady-silk"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(180deg,rgba(112,112,208,0.2) 0%,transparent 60%);
}
[data-theme="ext-light-lady-silk"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-silk"] .nav-link{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-silk"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-silk"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-silk"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-silk"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-silk"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-silk"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-silk"] .hero > .hero-content,
[data-theme="ext-light-lady-silk"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_silk_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-silk"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-silk"] .section-subtitle{font-family:'Karla',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-silk"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(112,112,208,0.1);}
[data-theme="ext-light-lady-silk"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(112,112,208,0.1);}
[data-theme="ext-light-lady-silk"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-silk"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-silk"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-silk"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-silk"] .stat-label{font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-silk"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(112,112,208,0.1);}

[data-theme="ext-light-lady-silk"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-silk"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-silk"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-silk"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-silk"] .album-meta{font-family:'Karla',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-silk"] .btn.primary{background:var(--accent);color:#fff;font-family:'Karla',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-silk"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-silk"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Karla',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-silk"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-silk"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(112,112,208,0.1);}


[data-theme="ext-light-lady-silk"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-silk"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-silk"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-silk"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-silk"] .footer-links a{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-silk"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-silk"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-silk"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-silk"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-silk"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(112,112,208,0.1);}
[data-theme="ext-light-lady-silk"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-silk"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-silk"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-silk"] .mobile-menu a{color:var(--text-dim);font-family:'Karla',sans-serif;}
[data-theme="ext-light-lady-silk"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-silk"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-silk"] .ts-name{color:var(--text);font-family:'Karla',sans-serif;}
[data-theme="ext-light-lady-silk"] a{color:var(--accent);}
[data-theme="ext-light-lady-silk"] .eyebrow{color:var(--accent);font-family:'Karla',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-silk"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-jade  (翡翠温润 / Jade Warm) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-jade"]{
  --bg:#f0faf6;--bg-2:#e0f0e8;--bg-3:#d0e5d8;--bg-4:#c0daca;
  --text:#0a2a1a;--text-dim:#3a5a4a;--text-mid:#5a7a6a;
  --accent:#3aad7a;--accent-glow:rgba(58,173,122,0.25);--white:#0a2a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0faf6ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Spectral',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-jade"] body{background:#f0faf6;color:#0a2a1a;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-light-lady-jade"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(180deg,rgba(58,173,122,0.25) 0%,transparent 60%);
}
[data-theme="ext-light-lady-jade"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-jade"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-jade"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-jade"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-jade"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-jade"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-jade"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-jade"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-jade"] .hero > .hero-content,
[data-theme="ext-light-lady-jade"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_jade_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-jade"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-jade"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-jade"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(58,173,122,0.1);}
[data-theme="ext-light-lady-jade"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(58,173,122,0.1);}
[data-theme="ext-light-lady-jade"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-jade"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-jade"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-jade"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-jade"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-jade"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(58,173,122,0.1);}

[data-theme="ext-light-lady-jade"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-jade"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-jade"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-jade"] .album-title{font-family:'Spectral',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-jade"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-jade"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-jade"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-jade"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-jade"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-jade"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(58,173,122,0.1);}


[data-theme="ext-light-lady-jade"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-jade"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-jade"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-jade"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-jade"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-jade"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-jade"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-jade"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-jade"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-jade"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(58,173,122,0.1);}
[data-theme="ext-light-lady-jade"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-jade"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-jade"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-jade"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-light-lady-jade"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-jade"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-jade"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-light-lady-jade"] a{color:var(--accent);}
[data-theme="ext-light-lady-jade"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-jade"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-lady-amber  (琥珀流光 / Amber Glow) [LIGHT]
   ============================================================ */

[data-theme="ext-light-lady-amber"]{
  --bg:#fdf8f0;--bg-2:#f8eed8;--bg-3:#f0e0c0;--bg-4:#e8d0a5;
  --text:#2a1a0a;--text-dim:#5a4a2a;--text-mid:#7a6a4a;
  --accent:#c08020;--accent-glow:rgba(192,128,32,0.25);--white:#2a1a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdf8f0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cinzel',serif;--font-body:'Spectral',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-lady-amber"] body{background:#fdf8f0;color:#2a1a0a;font-family:'Spectral',sans-serif;cursor:none;}
[data-theme="ext-light-lady-amber"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 0%,rgba(192,128,32,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-lady-amber"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-lady-amber"] .nav-link{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-lady-amber"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-lady-amber"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-lady-amber"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-lady-amber"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-lady-amber"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-lady-amber"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-lady-amber"] .hero > .hero-content,
[data-theme="ext-light-lady-amber"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_lady_amber_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-lady-amber"] .section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-lady-amber"] .section-subtitle{font-family:'Spectral',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-lady-amber"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(192,128,32,0.1);}
[data-theme="ext-light-lady-amber"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(192,128,32,0.1);}
[data-theme="ext-light-lady-amber"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-lady-amber"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-lady-amber"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-lady-amber"] .stat-num{font-family:'Cinzel',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-lady-amber"] .stat-label{font-family:'Spectral',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-lady-amber"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(192,128,32,0.1);}

[data-theme="ext-light-lady-amber"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-lady-amber"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-lady-amber"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-lady-amber"] .album-title{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-lady-amber"] .album-meta{font-family:'Spectral',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-lady-amber"] .btn.primary{background:var(--accent);color:#fff;font-family:'Spectral',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-lady-amber"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-lady-amber"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Spectral',sans-serif;transition:var(--transition);}
[data-theme="ext-light-lady-amber"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-lady-amber"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(192,128,32,0.1);}


[data-theme="ext-light-lady-amber"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-amber"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-lady-amber"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-lady-amber"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-lady-amber"] .footer-links a{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-lady-amber"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-lady-amber"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-lady-amber"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-amber"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-lady-amber"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(192,128,32,0.1);}
[data-theme="ext-light-lady-amber"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-lady-amber"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-lady-amber"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-lady-amber"] .mobile-menu a{color:var(--text-dim);font-family:'Spectral',sans-serif;}
[data-theme="ext-light-lady-amber"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-lady-amber"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-lady-amber"] .ts-name{color:var(--text);font-family:'Spectral',sans-serif;}
[data-theme="ext-light-lady-amber"] a{color:var(--accent);}
[data-theme="ext-light-lady-amber"] .eyebrow{color:var(--accent);font-family:'Spectral',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-lady-amber"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pure-snow  (初雪纯白 / First Snow) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pure-snow"]{
  --bg:#fafcff;--bg-2:#f0f5fa;--bg-3:#e8eef5;--bg-4:#dfe8f0;
  --text:#1a2a3a;--text-dim:#4a5a6a;--text-mid:#6a7a8a;
  --accent:#a0d8ff;--accent-glow:rgba(160,216,255,0.3);--white:#1a2a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafcffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cinzel',serif;--font-body:'Hanken Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pure-snow"] body{background:#fafcff;color:#1a2a3a;font-family:'Hanken Grotesk',sans-serif;cursor:none;}
[data-theme="ext-light-pure-snow"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 20% 20%,rgba(160,216,255,0.3) 0%,transparent 15%),radial-gradient(circle at 80% 80%,rgba(160,216,255,0.3) 0%,transparent 15%);
}
[data-theme="ext-light-pure-snow"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pure-snow"] .nav-link{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pure-snow"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pure-snow"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pure-snow"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pure-snow"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pure-snow"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pure-snow"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pure-snow"] .hero > .hero-content,
[data-theme="ext-light-pure-snow"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pure_snow_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pure-snow"] .section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pure-snow"] .section-subtitle{font-family:'Hanken Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pure-snow"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(160,216,255,0.12);}
[data-theme="ext-light-pure-snow"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(160,216,255,0.12);}
[data-theme="ext-light-pure-snow"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pure-snow"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pure-snow"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pure-snow"] .stat-num{font-family:'Cinzel',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pure-snow"] .stat-label{font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pure-snow"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(160,216,255,0.12);}

[data-theme="ext-light-pure-snow"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pure-snow"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pure-snow"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pure-snow"] .album-title{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pure-snow"] .album-meta{font-family:'Hanken Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pure-snow"] .btn.primary{background:var(--accent);color:#fff;font-family:'Hanken Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pure-snow"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pure-snow"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Hanken Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pure-snow"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pure-snow"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(160,216,255,0.12);}


[data-theme="ext-light-pure-snow"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-snow"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-pure-snow"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pure-snow"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pure-snow"] .footer-links a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pure-snow"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pure-snow"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pure-snow"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-snow"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pure-snow"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(160,216,255,0.12);}
[data-theme="ext-light-pure-snow"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-snow"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pure-snow"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pure-snow"] .mobile-menu a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-light-pure-snow"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pure-snow"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pure-snow"] .ts-name{color:var(--text);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-light-pure-snow"] a{color:var(--accent);}
[data-theme="ext-light-pure-snow"] .eyebrow{color:var(--accent);font-family:'Hanken Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pure-snow"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pure-lily  (百合清香 / Lily Fresh) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pure-lily"]{
  --bg:#fefefa;--bg-2:#f5f5ee;--bg-3:#ebebe0;--bg-4:#dedecb;
  --text:#1a2a14;--text-dim:#4a5a44;--text-mid:#6a7a64;
  --accent:#8ab85a;--accent-glow:rgba(138,184,90,0.25);--white:#1a2a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fefefaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Spectral',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pure-lily"] body{background:#fefefa;color:#1a2a14;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-light-pure-lily"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 20% 20%,rgba(138,184,90,0.25) 0%,transparent 15%),radial-gradient(circle at 80% 80%,rgba(138,184,90,0.25) 0%,transparent 15%);
}
[data-theme="ext-light-pure-lily"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pure-lily"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pure-lily"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pure-lily"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pure-lily"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pure-lily"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pure-lily"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pure-lily"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pure-lily"] .hero > .hero-content,
[data-theme="ext-light-pure-lily"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pure_lily_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pure-lily"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pure-lily"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pure-lily"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(138,184,90,0.1);}
[data-theme="ext-light-pure-lily"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(138,184,90,0.1);}
[data-theme="ext-light-pure-lily"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pure-lily"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pure-lily"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pure-lily"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pure-lily"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pure-lily"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(138,184,90,0.1);}

[data-theme="ext-light-pure-lily"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pure-lily"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pure-lily"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pure-lily"] .album-title{font-family:'Spectral',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pure-lily"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pure-lily"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pure-lily"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pure-lily"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pure-lily"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pure-lily"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(138,184,90,0.1);}


[data-theme="ext-light-pure-lily"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-lily"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-pure-lily"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pure-lily"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pure-lily"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pure-lily"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pure-lily"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pure-lily"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-lily"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pure-lily"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(138,184,90,0.1);}
[data-theme="ext-light-pure-lily"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-lily"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pure-lily"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pure-lily"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-light-pure-lily"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pure-lily"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pure-lily"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-light-pure-lily"] a{color:var(--accent);}
[data-theme="ext-light-pure-lily"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pure-lily"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pure-aqua  (清水芙蓉 / Pure Water) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pure-aqua"]{
  --bg:#f0faff;--bg-2:#e0f0fa;--bg-3:#d0e5f5;--bg-4:#c0d8ee;
  --text:#0a2a3a;--text-dim:#3a5a6a;--text-mid:#5a7a8a;
  --accent:#3bc5e8;--accent-glow:rgba(59,197,232,0.25);--white:#0a2a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0faffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Outfit',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pure-aqua"] body{background:#f0faff;color:#0a2a3a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-light-pure-aqua"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 20%,rgba(59,197,232,0.25) 0%,transparent 30%),radial-gradient(circle at 70% 80%,rgba(59,197,232,0.25) 0%,transparent 25%);
}
[data-theme="ext-light-pure-aqua"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pure-aqua"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pure-aqua"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pure-aqua"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pure-aqua"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pure-aqua"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pure-aqua"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pure-aqua"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pure-aqua"] .hero > .hero-content,
[data-theme="ext-light-pure-aqua"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pure_aqua_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pure-aqua"] .section-title{font-family:'Outfit',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pure-aqua"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pure-aqua"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(59,197,232,0.12);}
[data-theme="ext-light-pure-aqua"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(59,197,232,0.12);}
[data-theme="ext-light-pure-aqua"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pure-aqua"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pure-aqua"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pure-aqua"] .stat-num{font-family:'Outfit',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pure-aqua"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pure-aqua"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(59,197,232,0.12);}

[data-theme="ext-light-pure-aqua"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pure-aqua"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pure-aqua"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pure-aqua"] .album-title{font-family:'Outfit',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pure-aqua"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pure-aqua"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pure-aqua"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pure-aqua"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pure-aqua"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pure-aqua"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(59,197,232,0.12);}


[data-theme="ext-light-pure-aqua"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-aqua"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-pure-aqua"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pure-aqua"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pure-aqua"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pure-aqua"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pure-aqua"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pure-aqua"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-aqua"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pure-aqua"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(59,197,232,0.12);}
[data-theme="ext-light-pure-aqua"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-aqua"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pure-aqua"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pure-aqua"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-pure-aqua"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pure-aqua"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pure-aqua"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-pure-aqua"] a{color:var(--accent);}
[data-theme="ext-light-pure-aqua"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pure-aqua"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pure-breeze  (清风拂面 / Gentle Breeze) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pure-breeze"]{
  --bg:#f5fdfa;--bg-2:#e8f5f0;--bg-3:#d8ede5;--bg-4:#c8e0d8;
  --text:#0a2a24;--text-dim:#3a5a4e;--text-mid:#5a7a6e;
  --accent:#2dd4bf;--accent-glow:rgba(45,212,191,0.25);--white:#0a2a24;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5fdfaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pure-breeze"] body{background:#f5fdfa;color:#0a2a24;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-light-pure-breeze"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(ellipse at 50% 0%,rgba(45,212,191,0.25) 0%,transparent 50%);
}
[data-theme="ext-light-pure-breeze"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pure-breeze"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pure-breeze"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pure-breeze"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pure-breeze"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pure-breeze"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pure-breeze"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pure-breeze"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pure-breeze"] .hero > .hero-content,
[data-theme="ext-light-pure-breeze"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pure_breeze_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pure-breeze"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pure-breeze"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pure-breeze"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(45,212,191,0.1);}
[data-theme="ext-light-pure-breeze"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(45,212,191,0.1);}
[data-theme="ext-light-pure-breeze"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pure-breeze"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pure-breeze"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pure-breeze"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pure-breeze"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pure-breeze"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(45,212,191,0.1);}

[data-theme="ext-light-pure-breeze"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pure-breeze"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pure-breeze"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pure-breeze"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pure-breeze"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pure-breeze"] .btn.primary{background:var(--accent);color:#fff;font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pure-breeze"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pure-breeze"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pure-breeze"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pure-breeze"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(45,212,191,0.1);}


[data-theme="ext-light-pure-breeze"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-breeze"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-pure-breeze"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pure-breeze"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pure-breeze"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pure-breeze"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pure-breeze"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pure-breeze"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-breeze"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pure-breeze"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(45,212,191,0.1);}
[data-theme="ext-light-pure-breeze"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-breeze"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pure-breeze"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pure-breeze"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-pure-breeze"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pure-breeze"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pure-breeze"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-pure-breeze"] a{color:var(--accent);}
[data-theme="ext-light-pure-breeze"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pure-breeze"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pure-ivory  (象牙白净 / Ivory Pure) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pure-ivory"]{
  --bg:#fdfbf8;--bg-2:#f8f5f0;--bg-3:#f0ebe5;--bg-4:#e8e0d8;
  --text:#2a2418;--text-dim:#5a4e3a;--text-mid:#7a6e5a;
  --accent:#c8b888;--accent-glow:rgba(200,184,136,0.2);--white:#2a2418;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdfbf8ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pure-ivory"] body{background:#fdfbf8;color:#2a2418;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-light-pure-ivory"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(200,184,136,0.2) 0%,transparent 50%);
}
[data-theme="ext-light-pure-ivory"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pure-ivory"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pure-ivory"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pure-ivory"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pure-ivory"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pure-ivory"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pure-ivory"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pure-ivory"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pure-ivory"] .hero > .hero-content,
[data-theme="ext-light-pure-ivory"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pure_ivory_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pure-ivory"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pure-ivory"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pure-ivory"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 12px rgba(200,184,136,0.08);}
[data-theme="ext-light-pure-ivory"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 12px rgba(200,184,136,0.08);}
[data-theme="ext-light-pure-ivory"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pure-ivory"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pure-ivory"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pure-ivory"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pure-ivory"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pure-ivory"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 12px rgba(200,184,136,0.08);}

[data-theme="ext-light-pure-ivory"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pure-ivory"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pure-ivory"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pure-ivory"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pure-ivory"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pure-ivory"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pure-ivory"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pure-ivory"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pure-ivory"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pure-ivory"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(200,184,136,0.08);}


[data-theme="ext-light-pure-ivory"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-ivory"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-pure-ivory"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pure-ivory"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pure-ivory"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pure-ivory"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pure-ivory"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pure-ivory"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-ivory"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pure-ivory"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(200,184,136,0.08);}
[data-theme="ext-light-pure-ivory"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-ivory"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pure-ivory"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pure-ivory"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-pure-ivory"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pure-ivory"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pure-ivory"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-pure-ivory"] a{color:var(--accent);}
[data-theme="ext-light-pure-ivory"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pure-ivory"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-pure-dawn  (黎明微光 / Dawn Light) [LIGHT]
   ============================================================ */

[data-theme="ext-light-pure-dawn"]{
  --bg:#fdf8f5;--bg-2:#fae8e0;--bg-3:#f5d8cc;--bg-4:#eec5b8;
  --text:#2a1814;--text-dim:#5a3a34;--text-mid:#7a5a54;
  --accent:#e89070;--accent-glow:rgba(232,144,112,0.25);--white:#2a1814;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdf8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Source Sans 3',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-pure-dawn"] body{background:#fdf8f5;color:#2a1814;font-family:'Source Sans 3',sans-serif;cursor:none;}
[data-theme="ext-light-pure-dawn"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 100%,rgba(232,144,112,0.25) 0%,transparent 50%);
}
[data-theme="ext-light-pure-dawn"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-pure-dawn"] .nav-link{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-pure-dawn"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-pure-dawn"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-pure-dawn"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-pure-dawn"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-pure-dawn"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-pure-dawn"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-pure-dawn"] .hero > .hero-content,
[data-theme="ext-light-pure-dawn"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_pure_dawn_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-pure-dawn"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-pure-dawn"] .section-subtitle{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-pure-dawn"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(232,144,112,0.1);}
[data-theme="ext-light-pure-dawn"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(232,144,112,0.1);}
[data-theme="ext-light-pure-dawn"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-pure-dawn"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-pure-dawn"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-pure-dawn"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-pure-dawn"] .stat-label{font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-pure-dawn"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(232,144,112,0.1);}

[data-theme="ext-light-pure-dawn"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-pure-dawn"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-pure-dawn"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-pure-dawn"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-pure-dawn"] .album-meta{font-family:'Source Sans 3',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-pure-dawn"] .btn.primary{background:var(--accent);color:#fff;font-family:'Source Sans 3',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-pure-dawn"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-pure-dawn"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Source Sans 3',sans-serif;transition:var(--transition);}
[data-theme="ext-light-pure-dawn"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-pure-dawn"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(232,144,112,0.1);}


[data-theme="ext-light-pure-dawn"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-dawn"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-pure-dawn"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-pure-dawn"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-pure-dawn"] .footer-links a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-pure-dawn"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-pure-dawn"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-pure-dawn"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-dawn"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-pure-dawn"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(232,144,112,0.1);}
[data-theme="ext-light-pure-dawn"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-pure-dawn"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-pure-dawn"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-pure-dawn"] .mobile-menu a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-light-pure-dawn"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-pure-dawn"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-pure-dawn"] .ts-name{color:var(--text);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-light-pure-dawn"] a{color:var(--accent);}
[data-theme="ext-light-pure-dawn"] .eyebrow{color:var(--accent);font-family:'Source Sans 3',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-pure-dawn"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-sky  (青春天空 / Youth Sky) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-sky"]{
  --bg:#f0f8ff;--bg-2:#e0ecfa;--bg-3:#d0e0f5;--bg-4:#c0d4ee;
  --text:#0a2a4a;--text-dim:#3a5a7a;--text-mid:#5a7a9a;
  --accent:#3b82f6;--accent-glow:rgba(59,130,246,0.2);--white:#0a2a4a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0f8ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-sky"] body{background:#f0f8ff;color:#0a2a4a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-light-youth-sky"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(135deg,rgba(59,130,246,0.2) 0%,transparent 40%);
}
[data-theme="ext-light-youth-sky"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-sky"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-sky"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-sky"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-sky"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-sky"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-sky"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-sky"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-sky"] .hero > .hero-content,
[data-theme="ext-light-youth-sky"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_sky_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-sky"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-sky"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-sky"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(59,130,246,0.1);}
[data-theme="ext-light-youth-sky"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(59,130,246,0.1);}
[data-theme="ext-light-youth-sky"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-sky"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-sky"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-sky"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-sky"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-sky"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(59,130,246,0.1);}

[data-theme="ext-light-youth-sky"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-sky"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-sky"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-sky"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-sky"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-sky"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-sky"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-sky"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-sky"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-sky"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(59,130,246,0.1);}


[data-theme="ext-light-youth-sky"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-sky"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-sky"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-sky"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-sky"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-sky"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-sky"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-sky"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-sky"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-sky"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(59,130,246,0.1);}
[data-theme="ext-light-youth-sky"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-sky"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-sky"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-sky"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-light-youth-sky"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-sky"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-sky"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-light-youth-sky"] a{color:var(--accent);}
[data-theme="ext-light-youth-sky"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-sky"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-grass  (青草牧场 / Green Meadow) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-grass"]{
  --bg:#f5faf0;--bg-2:#ebf5e5;--bg-3:#ddebd5;--bg-4:#cee0c5;
  --text:#1a2a14;--text-dim:#4a5a44;--text-mid:#6a7a64;
  --accent:#4caf50;--accent-glow:rgba(76,175,80,0.25);--white:#1a2a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5faf0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fredoka',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-grass"] body{background:#f5faf0;color:#1a2a14;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-light-youth-grass"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(76,175,80,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-youth-grass"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-grass"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-grass"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-grass"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-grass"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-grass"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-grass"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-grass"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-grass"] .hero > .hero-content,
[data-theme="ext-light-youth-grass"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_grass_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-grass"] .section-title{font-family:'Fredoka',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-grass"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-grass"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(76,175,80,0.1);}
[data-theme="ext-light-youth-grass"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(76,175,80,0.1);}
[data-theme="ext-light-youth-grass"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-grass"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-grass"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-grass"] .stat-num{font-family:'Fredoka',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-grass"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-grass"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(76,175,80,0.1);}

[data-theme="ext-light-youth-grass"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-grass"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-grass"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-grass"] .album-title{font-family:'Fredoka',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-grass"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-grass"] .btn.primary{background:var(--accent);color:#fff;font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-grass"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-grass"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-grass"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-grass"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(76,175,80,0.1);}


[data-theme="ext-light-youth-grass"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-grass"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-grass"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-grass"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-grass"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-grass"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-grass"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-grass"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-grass"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-grass"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(76,175,80,0.1);}
[data-theme="ext-light-youth-grass"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-grass"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-grass"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-grass"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-youth-grass"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-grass"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-grass"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-youth-grass"] a{color:var(--accent);}
[data-theme="ext-light-youth-grass"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-grass"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-orange  (活力橙阳 / Vibrant Orange) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-orange"]{
  --bg:#fffdf5;--bg-2:#fff5e0;--bg-3:#faecc0;--bg-4:#f0e0a0;
  --text:#3a2a0a;--text-dim:#6a5a3a;--text-mid:#8a7a5a;
  --accent:#ff9020;--accent-glow:rgba(255,144,32,0.25);--white:#3a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffdf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fredoka',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-orange"] body{background:#fffdf5;color:#3a2a0a;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-light-youth-orange"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 0%,rgba(255,144,32,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-youth-orange"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-orange"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-orange"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-orange"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-orange"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-orange"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-orange"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-orange"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-orange"] .hero > .hero-content,
[data-theme="ext-light-youth-orange"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_orange_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-orange"] .section-title{font-family:'Fredoka',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-orange"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-orange"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(255,144,32,0.12);}
[data-theme="ext-light-youth-orange"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(255,144,32,0.12);}
[data-theme="ext-light-youth-orange"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-orange"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-orange"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-orange"] .stat-num{font-family:'Fredoka',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-orange"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-orange"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(255,144,32,0.12);}

[data-theme="ext-light-youth-orange"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-orange"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-orange"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-orange"] .album-title{font-family:'Fredoka',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-orange"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-orange"] .btn.primary{background:var(--accent);color:#fff;font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-orange"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-orange"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-orange"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-orange"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,144,32,0.12);}


[data-theme="ext-light-youth-orange"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-orange"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-orange"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-orange"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-orange"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-orange"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-orange"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-orange"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-orange"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-orange"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,144,32,0.12);}
[data-theme="ext-light-youth-orange"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-orange"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-orange"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-orange"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-youth-orange"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-orange"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-orange"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-light-youth-orange"] a{color:var(--accent);}
[data-theme="ext-light-youth-orange"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-orange"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-yuth-coral  (珊瑚少年 / Coral Youth) [LIGHT]
   ============================================================ */

[data-theme="ext-light-yuth-coral"]{
  --bg:#fff8f5;--bg-2:#fce8e0;--bg-3:#f5d8cc;--bg-4:#eec5b8;
  --text:#3a1a14;--text-dim:#6a4a44;--text-mid:#8a6a64;
  --accent:#ff5e3a;--accent-glow:rgba(255,94,58,0.25);--white:#3a1a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-yuth-coral"] body{background:#fff8f5;color:#3a1a14;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-light-yuth-coral"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 100%,rgba(255,94,58,0.25) 0%,transparent 50%);
}
[data-theme="ext-light-yuth-coral"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-yuth-coral"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-yuth-coral"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-yuth-coral"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-yuth-coral"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-yuth-coral"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-yuth-coral"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-yuth-coral"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-yuth-coral"] .hero > .hero-content,
[data-theme="ext-light-yuth-coral"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_yuth_coral_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-yuth-coral"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-yuth-coral"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-yuth-coral"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,94,58,0.12);}
[data-theme="ext-light-yuth-coral"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,94,58,0.12);}
[data-theme="ext-light-yuth-coral"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-yuth-coral"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-yuth-coral"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-yuth-coral"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-yuth-coral"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-yuth-coral"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,94,58,0.12);}

[data-theme="ext-light-yuth-coral"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-yuth-coral"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-yuth-coral"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-yuth-coral"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-yuth-coral"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-yuth-coral"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-yuth-coral"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-yuth-coral"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-yuth-coral"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-yuth-coral"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,94,58,0.12);}


[data-theme="ext-light-yuth-coral"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-yuth-coral"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-yuth-coral"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-yuth-coral"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-yuth-coral"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-yuth-coral"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-yuth-coral"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-yuth-coral"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-yuth-coral"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-yuth-coral"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,94,58,0.12);}
[data-theme="ext-light-yuth-coral"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-yuth-coral"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-yuth-coral"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-yuth-coral"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-yuth-coral"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-yuth-coral"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-yuth-coral"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-light-yuth-coral"] a{color:var(--accent);}
[data-theme="ext-light-yuth-coral"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-yuth-coral"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-lake  (湖畔清风 / Lake Breeze) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-lake"]{
  --bg:#f0fafa;--bg-2:#e0f0f0;--bg-3:#d0e5e5;--bg-4:#c0d8d8;
  --text:#0a2a2a;--text-dim:#3a5a5a;--text-mid:#5a7a7a;
  --accent:#1ab8b8;--accent-glow:rgba(26,184,184,0.25);--white:#0a2a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0fafaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-lake"] body{background:#f0fafa;color:#0a2a2a;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-light-youth-lake"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:linear-gradient(135deg,rgba(26,184,184,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-youth-lake"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-lake"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-lake"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-lake"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-lake"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-lake"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-lake"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-lake"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-lake"] .hero > .hero-content,
[data-theme="ext-light-youth-lake"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_lake_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-lake"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-lake"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-lake"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(26,184,184,0.1);}
[data-theme="ext-light-youth-lake"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(26,184,184,0.1);}
[data-theme="ext-light-youth-lake"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-lake"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-lake"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-lake"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-lake"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-lake"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(26,184,184,0.1);}

[data-theme="ext-light-youth-lake"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-lake"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-lake"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-lake"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-lake"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-lake"] .btn.primary{background:var(--accent);color:#fff;font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-lake"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-lake"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-lake"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-lake"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(26,184,184,0.1);}


[data-theme="ext-light-youth-lake"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-lake"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-lake"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-lake"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-lake"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-lake"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-lake"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-lake"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-lake"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-lake"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(26,184,184,0.1);}
[data-theme="ext-light-youth-lake"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-lake"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-lake"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-lake"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-youth-lake"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-lake"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-lake"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-light-youth-lake"] a{color:var(--accent);}
[data-theme="ext-light-youth-lake"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-lake"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-sun  (阳光少年 / Sunshine Boy) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-sun"]{
  --bg:#fffef0;--bg-2:#faf8d8;--bg-3:#f0ecb0;--bg-4:#e8e088;
  --text:#3a3a0a;--text-dim:#6a6a3a;--text-mid:#8a8a5a;
  --accent:#f5b800;--accent-glow:rgba(245,184,0,0.25);--white:#3a3a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffef0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-sun"] body{background:#fffef0;color:#3a3a0a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-light-youth-sun"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 0%,rgba(245,184,0,0.25) 0%,transparent 40%);
}
[data-theme="ext-light-youth-sun"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-sun"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-sun"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-sun"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-sun"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-sun"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-sun"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-sun"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-sun"] .hero > .hero-content,
[data-theme="ext-light-youth-sun"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_sun_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-sun"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-sun"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-sun"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(245,184,0,0.12);}
[data-theme="ext-light-youth-sun"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(245,184,0,0.12);}
[data-theme="ext-light-youth-sun"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-sun"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-sun"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-sun"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-sun"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-sun"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(245,184,0,0.12);}

[data-theme="ext-light-youth-sun"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-sun"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-sun"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-sun"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-sun"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-sun"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-sun"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-sun"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-sun"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-sun"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(245,184,0,0.12);}


[data-theme="ext-light-youth-sun"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-sun"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-sun"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-sun"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-sun"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-sun"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-sun"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-sun"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-sun"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-sun"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(245,184,0,0.12);}
[data-theme="ext-light-youth-sun"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-sun"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-sun"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-sun"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-light-youth-sun"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-sun"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-sun"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-light-youth-sun"] a{color:var(--accent);}
[data-theme="ext-light-youth-sun"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-sun"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-grape  (葡萄汽水 / Grape Soda) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-grape"]{
  --bg:#faf5ff;--bg-2:#f0e8f8;--bg-3:#e5d8f0;--bg-4:#d8c8e5;
  --text:#2a1a3a;--text-dim:#5a4a6a;--text-mid:#7a6a8a;
  --accent:#9060d0;--accent-glow:rgba(144,96,208,0.25);--white:#2a1a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faf5ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Syne',serif;--font-body:'Space Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-grape"] body{background:#faf5ff;color:#2a1a3a;font-family:'Space Grotesk',sans-serif;cursor:none;}
[data-theme="ext-light-youth-grape"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 70%,rgba(144,96,208,0.25) 0%,transparent 20%),radial-gradient(circle at 70% 30%,rgba(144,96,208,0.25) 0%,transparent 20%);
}
[data-theme="ext-light-youth-grape"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-grape"] .nav-link{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-grape"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-grape"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-grape"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-grape"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-grape"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-grape"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-grape"] .hero > .hero-content,
[data-theme="ext-light-youth-grape"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_grape_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-grape"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-grape"] .section-subtitle{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-grape"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(144,96,208,0.12);}
[data-theme="ext-light-youth-grape"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(144,96,208,0.12);}
[data-theme="ext-light-youth-grape"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-grape"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-grape"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-grape"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-grape"] .stat-label{font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-grape"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(144,96,208,0.12);}

[data-theme="ext-light-youth-grape"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-grape"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-grape"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-grape"] .album-title{font-family:'Syne',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-grape"] .album-meta{font-family:'Space Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-grape"] .btn.primary{background:var(--accent);color:#fff;font-family:'Space Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-grape"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-grape"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Space Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-grape"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-grape"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(144,96,208,0.12);}


[data-theme="ext-light-youth-grape"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-grape"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-grape"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-grape"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-grape"] .footer-links a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-grape"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-grape"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-grape"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-grape"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-grape"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(144,96,208,0.12);}
[data-theme="ext-light-youth-grape"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-grape"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-grape"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-grape"] .mobile-menu a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-light-youth-grape"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-grape"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-grape"] .ts-name{color:var(--text);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-light-youth-grape"] a{color:var(--accent);}
[data-theme="ext-light-youth-grape"] .eyebrow{color:var(--accent);font-family:'Space Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-grape"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-light-youth-rainbow  (彩虹约定 / Rainbow Promise) [LIGHT]
   ============================================================ */

[data-theme="ext-light-youth-rainbow"]{
  --bg:#fafcff;--bg-2:#f0f5fa;--bg-3:#e8eef5;--bg-4:#dfe8f0;
  --text:#1a2a3a;--text-dim:#4a5a6a;--text-mid:#6a7a8a;
  --accent:#5b8def;--accent-glow:rgba(91,141,239,0.2);--white:#1a2a3a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafcffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Syne',serif;--font-body:'Space Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-light-youth-rainbow"] body{background:#fafcff;color:#1a2a3a;font-family:'Space Grotesk',sans-serif;cursor:none;}
[data-theme="ext-light-youth-rainbow"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 30% 70%,rgba(91,141,239,0.2) 0%,transparent 20%),radial-gradient(circle at 70% 30%,rgba(91,141,239,0.2) 0%,transparent 20%);
}
[data-theme="ext-light-youth-rainbow"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-light-youth-rainbow"] .nav-link{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-light-youth-rainbow"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-light-youth-rainbow"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-light-youth-rainbow"] .nav-link:hover::after{width:100%;}
[data-theme="ext-light-youth-rainbow"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-light-youth-rainbow"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-light-youth-rainbow"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-light-youth-rainbow"] .hero > .hero-content,
[data-theme="ext-light-youth-rainbow"] .hero > .hero-scroll{position:relative;z-index:2;}

@keyframes ext_light_youth_rainbow_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-light-youth-rainbow"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-light-youth-rainbow"] .section-subtitle{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-light-youth-rainbow"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(91,141,239,0.1);}
[data-theme="ext-light-youth-rainbow"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(91,141,239,0.1);}
[data-theme="ext-light-youth-rainbow"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-light-youth-rainbow"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-light-youth-rainbow"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-light-youth-rainbow"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-light-youth-rainbow"] .stat-label{font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-light-youth-rainbow"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(91,141,239,0.1);}

[data-theme="ext-light-youth-rainbow"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-light-youth-rainbow"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-light-youth-rainbow"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-light-youth-rainbow"] .album-title{font-family:'Syne',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-light-youth-rainbow"] .album-meta{font-family:'Space Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-light-youth-rainbow"] .btn.primary{background:var(--accent);color:#fff;font-family:'Space Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-light-youth-rainbow"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-light-youth-rainbow"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Space Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-light-youth-rainbow"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-light-youth-rainbow"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(91,141,239,0.1);}


[data-theme="ext-light-youth-rainbow"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-rainbow"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-light-youth-rainbow"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-light-youth-rainbow"] .footer-logo span{color:var(--accent);}
[data-theme="ext-light-youth-rainbow"] .footer-links a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-light-youth-rainbow"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-light-youth-rainbow"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-light-youth-rainbow"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-rainbow"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-light-youth-rainbow"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(91,141,239,0.1);}
[data-theme="ext-light-youth-rainbow"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-light-youth-rainbow"] .nav-toggle span{background:var(--text);}
[data-theme="ext-light-youth-rainbow"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-light-youth-rainbow"] .mobile-menu a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-light-youth-rainbow"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-light-youth-rainbow"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-light-youth-rainbow"] .ts-name{color:var(--text);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-light-youth-rainbow"] a{color:var(--accent);}
[data-theme="ext-light-youth-rainbow"] .eyebrow{color:var(--accent);font-family:'Space Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-light-youth-rainbow"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}


/* ============================================================
   THEME: ext-photo-vibrant-street  (街头鲜艳 / Vibrant Street) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-street"]{
  --bg:#fffaf5;--bg-2:#fff0e0;--bg-3:#fae0cc;--bg-4:#f0d0b8;
  --text:#1a0a0a;--text-dim:#4a2a2a;--text-mid:#6a4a4a;
  --accent:#ff595e;--accent-glow:rgba(255,89,94,0.25);--white:#1a0a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffaf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Anton',serif;--font-body:'Oswald',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-street"] body{background:#fffaf5;color:#1a0a0a;font-family:'Oswald',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-street"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,89,94,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-street"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-street"] .nav-link{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-street"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-street"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-street"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-street"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-street"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-street"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-street"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-street"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-street"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_street_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-street"] .section-title{font-family:'Anton',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-street"] .section-subtitle{font-family:'Oswald',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-street"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(255,89,94,0.12);}
[data-theme="ext-photo-vibrant-street"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(255,89,94,0.12);}
[data-theme="ext-photo-vibrant-street"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-street"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-street"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-street"] .stat-num{font-family:'Anton',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-street"] .stat-label{font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-street"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(255,89,94,0.12);}
[data-theme="ext-photo-vibrant-street"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-street"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-street"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-street"] .album-title{font-family:'Anton',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-street"] .album-meta{font-family:'Oswald',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-street"] .btn.primary{background:var(--accent);color:#fff;font-family:'Oswald',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-street"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-street"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Oswald',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-street"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-street"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,89,94,0.12);}
[data-theme="ext-photo-vibrant-street"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-street"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-street"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-street"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-street"] .footer-links a{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-street"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-street"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-street"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-street"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-street"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,89,94,0.12);}
[data-theme="ext-photo-vibrant-street"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-street"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-street"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-street"] .mobile-menu a{color:var(--text-dim);font-family:'Oswald',sans-serif;}
[data-theme="ext-photo-vibrant-street"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-street"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-street"] .ts-name{color:var(--text);font-family:'Oswald',sans-serif;}
[data-theme="ext-photo-vibrant-street"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-street"] .eyebrow{color:var(--accent);font-family:'Oswald',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-street"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-tropical  (热带风情 / Tropical Vibes) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-tropical"]{
  --bg:#f5fffa;--bg-2:#e8fff0;--bg-3:#d0f5e0;--bg-4:#b8e8cc;
  --text:#0a2a1a;--text-dim:#2a5a3a;--text-mid:#4a7a5a;
  --accent:#20c997;--accent-glow:rgba(32,201,151,0.25);--white:#0a2a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5fffaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-tropical"] body{background:#f5fffa;color:#0a2a1a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-tropical"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(32,201,151,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-tropical"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-tropical"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-tropical"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-tropical"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-tropical"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-tropical"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-tropical"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-tropical"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-tropical"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-tropical"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-tropical"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_tropical_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-tropical"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-tropical"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-tropical"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(32,201,151,0.12);}
[data-theme="ext-photo-vibrant-tropical"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(32,201,151,0.12);}
[data-theme="ext-photo-vibrant-tropical"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-tropical"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-tropical"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-tropical"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-tropical"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-tropical"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(32,201,151,0.12);}
[data-theme="ext-photo-vibrant-tropical"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-tropical"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-tropical"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-tropical"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-tropical"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-tropical"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-tropical"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-tropical"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-tropical"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-tropical"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(32,201,151,0.12);}
[data-theme="ext-photo-vibrant-tropical"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-tropical"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-tropical"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-tropical"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-tropical"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-tropical"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-tropical"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-tropical"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-tropical"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-tropical"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(32,201,151,0.12);}
[data-theme="ext-photo-vibrant-tropical"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-tropical"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-tropical"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-tropical"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-vibrant-tropical"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-tropical"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-tropical"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-vibrant-tropical"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-tropical"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-tropical"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-pop  (波普艺术 / Pop Art) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-pop"]{
  --bg:#fafaff;--bg-2:#f0f0fa;--bg-3:#e0e0f5;--bg-4:#d0d0ee;
  --text:#0a0a2a;--text-dim:#3a3a5a;--text-mid:#5a5a7a;
  --accent:#ff006e;--accent-glow:rgba(255,0,110,0.2);--white:#0a0a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafaffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Bebas Neue',serif;--font-body:'Rajdhani',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-pop"] body{background:#fafaff;color:#0a0a2a;font-family:'Rajdhani',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-pop"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,0,110,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-pop"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-pop"] .nav-link{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-pop"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-pop"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-pop"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-pop"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-pop"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-pop"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-pop"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-pop"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-pop"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_pop_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-pop"] .section-title{font-family:'Bebas Neue',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-pop"] .section-subtitle{font-family:'Rajdhani',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-pop"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,0,110,0.12);}
[data-theme="ext-photo-vibrant-pop"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,0,110,0.12);}
[data-theme="ext-photo-vibrant-pop"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-pop"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-pop"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-pop"] .stat-num{font-family:'Bebas Neue',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-pop"] .stat-label{font-family:'Rajdhani',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-pop"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,0,110,0.12);}
[data-theme="ext-photo-vibrant-pop"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-pop"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-pop"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-pop"] .album-title{font-family:'Bebas Neue',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-pop"] .album-meta{font-family:'Rajdhani',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-pop"] .btn.primary{background:var(--accent);color:#fff;font-family:'Rajdhani',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-pop"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-pop"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Rajdhani',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-pop"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-pop"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,0,110,0.12);}
[data-theme="ext-photo-vibrant-pop"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-pop"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-pop"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-pop"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-pop"] .footer-links a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-pop"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-pop"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-pop"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-pop"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-pop"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,0,110,0.12);}
[data-theme="ext-photo-vibrant-pop"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-pop"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-pop"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-pop"] .mobile-menu a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-vibrant-pop"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-pop"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-pop"] .ts-name{color:var(--text);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-vibrant-pop"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-pop"] .eyebrow{color:var(--accent);font-family:'Rajdhani',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-pop"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-festival  (节日盛典 / Festival) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-festival"]{
  --bg:#fffdf5;--bg-2:#fff5e0;--bg-3:#fae8c0;--bg-4:#f0dc9c;
  --text:#2a1a0a;--text-dim:#5a4a2a;--text-mid:#7a6a4a;
  --accent:#ff9f1c;--accent-glow:rgba(255,159,28,0.25);--white:#2a1a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffdf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Yeseva One',serif;--font-body:'Hanken Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-festival"] body{background:#fffdf5;color:#2a1a0a;font-family:'Hanken Grotesk',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-festival"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,159,28,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-festival"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-festival"] .nav-link{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-festival"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-festival"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-festival"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-festival"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-festival"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-festival"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-festival"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-festival"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-festival"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_festival_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-festival"] .section-title{font-family:'Yeseva One',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-festival"] .section-subtitle{font-family:'Hanken Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-festival"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,159,28,0.12);}
[data-theme="ext-photo-vibrant-festival"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,159,28,0.12);}
[data-theme="ext-photo-vibrant-festival"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-festival"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-festival"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-festival"] .stat-num{font-family:'Yeseva One',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-festival"] .stat-label{font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-festival"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,159,28,0.12);}
[data-theme="ext-photo-vibrant-festival"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-festival"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-festival"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-festival"] .album-title{font-family:'Yeseva One',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-festival"] .album-meta{font-family:'Hanken Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-festival"] .btn.primary{background:var(--accent);color:#fff;font-family:'Hanken Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-festival"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-festival"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Hanken Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-festival"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-festival"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,159,28,0.12);}
[data-theme="ext-photo-vibrant-festival"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-festival"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-festival"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-festival"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-festival"] .footer-links a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-festival"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-festival"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-festival"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-festival"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-festival"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,159,28,0.12);}
[data-theme="ext-photo-vibrant-festival"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-festival"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-festival"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-festival"] .mobile-menu a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-photo-vibrant-festival"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-festival"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-festival"] .ts-name{color:var(--text);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-photo-vibrant-festival"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-festival"] .eyebrow{color:var(--accent);font-family:'Hanken Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-festival"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-candy  (糖果色彩 / Candy Colors) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-candy"]{
  --bg:#fffafc;--bg-2:#fcf0f5;--bg-3:#f5e0ec;--bg-4:#eed0dc;
  --text:#2a1424;--text-dim:#5a3a54;--text-mid:#7a5a74;
  --accent:#ffafcc;--accent-glow:rgba(255,175,204,0.3);--white:#2a1424;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffafcee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Pacifico',serif;--font-body:'Quicksand',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-candy"] body{background:#fffafc;color:#2a1424;font-family:'Quicksand',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-candy"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,175,204,0.3) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-candy"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-candy"] .nav-link{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-candy"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-candy"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-candy"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-candy"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-candy"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-candy"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-candy"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-candy"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-candy"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_candy_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-candy"] .section-title{font-family:'Pacifico',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-candy"] .section-subtitle{font-family:'Quicksand',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-candy"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(255,175,204,0.12);}
[data-theme="ext-photo-vibrant-candy"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(255,175,204,0.12);}
[data-theme="ext-photo-vibrant-candy"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-candy"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-candy"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-candy"] .stat-num{font-family:'Pacifico',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-candy"] .stat-label{font-family:'Quicksand',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-candy"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(255,175,204,0.12);}
[data-theme="ext-photo-vibrant-candy"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-candy"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-candy"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-candy"] .album-title{font-family:'Pacifico',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-candy"] .album-meta{font-family:'Quicksand',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-candy"] .btn.primary{background:var(--accent);color:#fff;font-family:'Quicksand',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-candy"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-candy"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Quicksand',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-candy"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-candy"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,175,204,0.12);}
[data-theme="ext-photo-vibrant-candy"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-candy"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-candy"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-candy"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-candy"] .footer-links a{color:var(--text-dim);font-family:'Quicksand',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-candy"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-candy"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-candy"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-candy"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-candy"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,175,204,0.12);}
[data-theme="ext-photo-vibrant-candy"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-candy"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-candy"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-candy"] .mobile-menu a{color:var(--text-dim);font-family:'Quicksand',sans-serif;}
[data-theme="ext-photo-vibrant-candy"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-candy"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-candy"] .ts-name{color:var(--text);font-family:'Quicksand',sans-serif;}
[data-theme="ext-photo-vibrant-candy"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-candy"] .eyebrow{color:var(--accent);font-family:'Quicksand',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-candy"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-neon  (霓虹之夜 / Neon Night) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-neon"]{
  --bg:#fafaff;--bg-2:#f0f0fc;--bg-3:#e0e0f5;--bg-4:#d0d0ee;
  --text:#0a0a2a;--text-dim:#3a3a5a;--text-mid:#5a5a7a;
  --accent:#3a86ff;--accent-glow:rgba(58,134,255,0.25);--white:#0a0a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafaffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Audiowide',serif;--font-body:'Rajdhani',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-neon"] body{background:#fafaff;color:#0a0a2a;font-family:'Rajdhani',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-neon"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(58,134,255,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-neon"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-neon"] .nav-link{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-neon"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-neon"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-neon"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-neon"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-neon"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-neon"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-neon"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-neon"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-neon"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_neon_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-neon"] .section-title{font-family:'Audiowide',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-neon"] .section-subtitle{font-family:'Rajdhani',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-neon"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(58,134,255,0.12);}
[data-theme="ext-photo-vibrant-neon"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(58,134,255,0.12);}
[data-theme="ext-photo-vibrant-neon"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-neon"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-neon"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-neon"] .stat-num{font-family:'Audiowide',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-neon"] .stat-label{font-family:'Rajdhani',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-neon"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(58,134,255,0.12);}
[data-theme="ext-photo-vibrant-neon"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-neon"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-neon"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-neon"] .album-title{font-family:'Audiowide',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-neon"] .album-meta{font-family:'Rajdhani',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-neon"] .btn.primary{background:var(--accent);color:#fff;font-family:'Rajdhani',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-neon"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-neon"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Rajdhani',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-neon"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-neon"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(58,134,255,0.12);}
[data-theme="ext-photo-vibrant-neon"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-neon"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-neon"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-neon"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-neon"] .footer-links a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-neon"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-neon"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-neon"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-neon"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-neon"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(58,134,255,0.12);}
[data-theme="ext-photo-vibrant-neon"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-neon"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-neon"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-neon"] .mobile-menu a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-vibrant-neon"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-neon"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-neon"] .ts-name{color:var(--text);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-vibrant-neon"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-neon"] .eyebrow{color:var(--accent);font-family:'Rajdhani',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-neon"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-citrus  (柑橘清新 / Citrus Fresh) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-citrus"]{
  --bg:#fefffa;--bg-2:#f5ffe8;--bg-3:#e8f5d0;--bg-4:#d8ecb8;
  --text:#1a2a0a;--text-dim:#3a5a2a;--text-mid:#5a7a4a;
  --accent:#8ac926;--accent-glow:rgba(138,201,38,0.25);--white:#1a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fefffaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Outfit',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-citrus"] body{background:#fefffa;color:#1a2a0a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-citrus"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(138,201,38,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-citrus"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-citrus"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-citrus"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-citrus"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-citrus"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-citrus"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-citrus"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-citrus"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-citrus"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-citrus"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-citrus"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_citrus_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-citrus"] .section-title{font-family:'Outfit',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-citrus"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-citrus"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(138,201,38,0.12);}
[data-theme="ext-photo-vibrant-citrus"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(138,201,38,0.12);}
[data-theme="ext-photo-vibrant-citrus"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-citrus"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-citrus"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-citrus"] .stat-num{font-family:'Outfit',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-citrus"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-citrus"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(138,201,38,0.12);}
[data-theme="ext-photo-vibrant-citrus"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-citrus"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-citrus"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-citrus"] .album-title{font-family:'Outfit',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-citrus"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-citrus"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-citrus"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-citrus"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-citrus"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-citrus"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(138,201,38,0.12);}
[data-theme="ext-photo-vibrant-citrus"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-citrus"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-citrus"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-citrus"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-citrus"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-citrus"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-citrus"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-citrus"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-citrus"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-citrus"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(138,201,38,0.12);}
[data-theme="ext-photo-vibrant-citrus"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-citrus"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-citrus"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-citrus"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-vibrant-citrus"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-citrus"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-citrus"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-vibrant-citrus"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-citrus"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-citrus"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-vibrant-bold  (大胆鲜明 / Bold Bright) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-vibrant-bold"]{
  --bg:#fafafa;--bg-2:#f0f0f0;--bg-3:#e5e5e5;--bg-4:#d8d8d8;
  --text:#0a0a0a;--text-dim:#3a3a3a;--text-mid:#5a5a5a;
  --accent:#F97316;--accent-glow:rgba(249,115,22,0.25);--white:#0a0a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafafaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Anton',serif;--font-body:'Chivo',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-vibrant-bold"] body{background:#fafafa;color:#0a0a0a;font-family:'Chivo',sans-serif;cursor:none;}
[data-theme="ext-photo-vibrant-bold"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(249,115,22,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-vibrant-bold"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-vibrant-bold"] .nav-link{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-vibrant-bold"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-bold"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-vibrant-bold"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-vibrant-bold"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-vibrant-bold"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-vibrant-bold"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-vibrant-bold"] .hero > .hero-content,
[data-theme="ext-photo-vibrant-bold"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-vibrant-bold"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_vibrant_bold_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-vibrant-bold"] .section-title{font-family:'Anton',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-vibrant-bold"] .section-subtitle{font-family:'Chivo',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-vibrant-bold"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(249,115,22,0.12);}
[data-theme="ext-photo-vibrant-bold"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(249,115,22,0.12);}
[data-theme="ext-photo-vibrant-bold"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-vibrant-bold"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-vibrant-bold"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-vibrant-bold"] .stat-num{font-family:'Anton',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-vibrant-bold"] .stat-label{font-family:'Chivo',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-bold"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(249,115,22,0.12);}
[data-theme="ext-photo-vibrant-bold"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-vibrant-bold"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-vibrant-bold"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-vibrant-bold"] .album-title{font-family:'Anton',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-vibrant-bold"] .album-meta{font-family:'Chivo',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-vibrant-bold"] .btn.primary{background:var(--accent);color:#fff;font-family:'Chivo',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-vibrant-bold"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-vibrant-bold"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Chivo',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-vibrant-bold"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-vibrant-bold"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(249,115,22,0.12);}
[data-theme="ext-photo-vibrant-bold"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-bold"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-vibrant-bold"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-vibrant-bold"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-vibrant-bold"] .footer-links a{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-vibrant-bold"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-bold"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-vibrant-bold"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-bold"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-vibrant-bold"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(249,115,22,0.12);}
[data-theme="ext-photo-vibrant-bold"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-vibrant-bold"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-vibrant-bold"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-vibrant-bold"] .mobile-menu a{color:var(--text-dim);font-family:'Chivo',sans-serif;}
[data-theme="ext-photo-vibrant-bold"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-vibrant-bold"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-vibrant-bold"] .ts-name{color:var(--text);font-family:'Chivo',sans-serif;}
[data-theme="ext-photo-vibrant-bold"] a{color:var(--accent);}
[data-theme="ext-photo-vibrant-bold"] .eyebrow{color:var(--accent);font-family:'Chivo',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-vibrant-bold"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-coffee  (咖啡时光 / Coffee Time) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-coffee"]{
  --bg:#fbf8f5;--bg-2:#f5ede5;--bg-3:#ebe0d3;--bg-4:#dcccb8;
  --text:#2a1a10;--text-dim:#5a3a2a;--text-mid:#7a5a4a;
  --accent:#7f5a4a;--accent-glow:rgba(127,90,74,0.2);--white:#2a1a10;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fbf8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Playfair Display',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-coffee"] body{background:#fbf8f5;color:#2a1a10;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-coffee"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(127,90,74,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-coffee"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-coffee"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-coffee"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-coffee"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-coffee"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-coffee"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-coffee"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-coffee"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-coffee"] .hero > .hero-content,
[data-theme="ext-photo-warm-coffee"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-coffee"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_coffee_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-coffee"] .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-coffee"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-coffee"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(127,90,74,0.08);}
[data-theme="ext-photo-warm-coffee"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(127,90,74,0.08);}
[data-theme="ext-photo-warm-coffee"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-coffee"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-coffee"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-coffee"] .stat-num{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-coffee"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-coffee"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(127,90,74,0.08);}
[data-theme="ext-photo-warm-coffee"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-coffee"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-coffee"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-coffee"] .album-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-coffee"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-coffee"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-coffee"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-coffee"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-coffee"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-coffee"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(127,90,74,0.08);}
[data-theme="ext-photo-warm-coffee"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-coffee"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-coffee"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-coffee"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-coffee"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-coffee"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-coffee"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-coffee"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-coffee"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-coffee"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(127,90,74,0.08);}
[data-theme="ext-photo-warm-coffee"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-coffee"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-coffee"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-coffee"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-photo-warm-coffee"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-coffee"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-coffee"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-photo-warm-coffee"] a{color:var(--accent);}
[data-theme="ext-photo-warm-coffee"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-coffee"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-amber  (暖琥珀光 / Warm Amber) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-amber"]{
  --bg:#fffaf0;--bg-2:#faecd8;--bg-3:#f0dab5;--bg-4:#e8c898;
  --text:#2a1a0a;--text-dim:#5a4a2a;--text-mid:#7a6a4a;
  --accent:#c49b5a;--accent-glow:rgba(196,155,90,0.25);--white:#2a1a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffaf0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'Spectral',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-amber"] body{background:#fffaf0;color:#2a1a0a;font-family:'Spectral',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-amber"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(196,155,90,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-amber"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-amber"] .nav-link{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-amber"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-amber"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-amber"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-amber"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-amber"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-amber"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-amber"] .hero > .hero-content,
[data-theme="ext-photo-warm-amber"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-amber"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_amber_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-amber"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-amber"] .section-subtitle{font-family:'Spectral',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-amber"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(196,155,90,0.1);}
[data-theme="ext-photo-warm-amber"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(196,155,90,0.1);}
[data-theme="ext-photo-warm-amber"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-amber"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-amber"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-amber"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-amber"] .stat-label{font-family:'Spectral',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-amber"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(196,155,90,0.1);}
[data-theme="ext-photo-warm-amber"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-amber"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-amber"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-amber"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-amber"] .album-meta{font-family:'Spectral',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-amber"] .btn.primary{background:var(--accent);color:#fff;font-family:'Spectral',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-amber"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-amber"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Spectral',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-amber"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-amber"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(196,155,90,0.1);}
[data-theme="ext-photo-warm-amber"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-amber"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-amber"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-amber"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-amber"] .footer-links a{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-amber"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-amber"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-amber"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-amber"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-amber"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(196,155,90,0.1);}
[data-theme="ext-photo-warm-amber"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-amber"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-amber"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-amber"] .mobile-menu a{color:var(--text-dim);font-family:'Spectral',sans-serif;}
[data-theme="ext-photo-warm-amber"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-amber"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-amber"] .ts-name{color:var(--text);font-family:'Spectral',sans-serif;}
[data-theme="ext-photo-warm-amber"] a{color:var(--accent);}
[data-theme="ext-photo-warm-amber"] .eyebrow{color:var(--accent);font-family:'Spectral',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-amber"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-autumn  (秋日暖阳 / Autumn Warmth) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-autumn"]{
  --bg:#fff8f0;--bg-2:#fae8d8;--bg-3:#f0d0b8;--bg-4:#e8bc98;
  --text:#2a1a0a;--text-dim:#5a3a1a;--text-mid:#7a5a3a;
  --accent:#c77953;--accent-glow:rgba(199,121,83,0.25);--white:#2a1a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fraunces',serif;--font-body:'Source Sans 3',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-autumn"] body{background:#fff8f0;color:#2a1a0a;font-family:'Source Sans 3',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-autumn"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(199,121,83,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-autumn"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-autumn"] .nav-link{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-autumn"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-autumn"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-autumn"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-autumn"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-autumn"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-autumn"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-autumn"] .hero > .hero-content,
[data-theme="ext-photo-warm-autumn"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-autumn"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_autumn_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-autumn"] .section-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-autumn"] .section-subtitle{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-autumn"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(199,121,83,0.12);}
[data-theme="ext-photo-warm-autumn"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(199,121,83,0.12);}
[data-theme="ext-photo-warm-autumn"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-autumn"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-autumn"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-autumn"] .stat-num{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-autumn"] .stat-label{font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-autumn"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(199,121,83,0.12);}
[data-theme="ext-photo-warm-autumn"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-autumn"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-autumn"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-autumn"] .album-title{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-autumn"] .album-meta{font-family:'Source Sans 3',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-autumn"] .btn.primary{background:var(--accent);color:#fff;font-family:'Source Sans 3',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-autumn"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-autumn"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Source Sans 3',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-autumn"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-autumn"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(199,121,83,0.12);}
[data-theme="ext-photo-warm-autumn"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-autumn"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-autumn"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-autumn"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-autumn"] .footer-links a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-autumn"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-autumn"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-autumn"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-autumn"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-autumn"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(199,121,83,0.12);}
[data-theme="ext-photo-warm-autumn"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-autumn"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-autumn"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-autumn"] .mobile-menu a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-photo-warm-autumn"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-autumn"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-autumn"] .ts-name{color:var(--text);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-photo-warm-autumn"] a{color:var(--accent);}
[data-theme="ext-photo-warm-autumn"] .eyebrow{color:var(--accent);font-family:'Source Sans 3',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-autumn"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-firelight  (炉火故事 / Fireside Story) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-firelight"]{
  --bg:#fff5f0;--bg-2:#fae0d5;--bg-3:#f0c8b8;--bg-4:#e8b098;
  --text:#2a1410;--text-dim:#5a3430;--text-mid:#7a5450;
  --accent:#b7605f;--accent-glow:rgba(183,96,95,0.25);--white:#2a1410;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff5f0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-firelight"] body{background:#fff5f0;color:#2a1410;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-firelight"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(183,96,95,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-firelight"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-firelight"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-firelight"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-firelight"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-firelight"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-firelight"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-firelight"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-firelight"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-firelight"] .hero > .hero-content,
[data-theme="ext-photo-warm-firelight"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-firelight"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_firelight_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-firelight"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-firelight"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-firelight"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(183,96,95,0.12);}
[data-theme="ext-photo-warm-firelight"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(183,96,95,0.12);}
[data-theme="ext-photo-warm-firelight"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-firelight"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-firelight"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-firelight"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-firelight"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-firelight"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(183,96,95,0.12);}
[data-theme="ext-photo-warm-firelight"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-firelight"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-firelight"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-firelight"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-firelight"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-firelight"] .btn.primary{background:var(--accent);color:#fff;font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-firelight"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-firelight"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-firelight"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-firelight"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(183,96,95,0.12);}
[data-theme="ext-photo-warm-firelight"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-firelight"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-firelight"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-firelight"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-firelight"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-firelight"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-firelight"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-firelight"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-firelight"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-firelight"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(183,96,95,0.12);}
[data-theme="ext-photo-warm-firelight"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-firelight"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-firelight"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-firelight"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-photo-warm-firelight"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-firelight"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-firelight"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-photo-warm-firelight"] a{color:var(--accent);}
[data-theme="ext-photo-warm-firelight"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-firelight"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-flannel  (法兰绒暖 / Flannel Warm) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-flannel"]{
  --bg:#faf8f5;--bg-2:#f0ede8;--bg-3:#e5e0d8;--bg-4:#d8d0c5;
  --text:#1a1a14;--text-dim:#4a4a34;--text-mid:#6a6a54;
  --accent:#7a828c;--accent-glow:rgba(122,130,140,0.2);--white:#1a1a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faf8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Libre Baskerville',serif;--font-body:'Karla',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-flannel"] body{background:#faf8f5;color:#1a1a14;font-family:'Karla',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-flannel"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(122,130,140,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-flannel"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-flannel"] .nav-link{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-flannel"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-flannel"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-flannel"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-flannel"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-flannel"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-flannel"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-flannel"] .hero > .hero-content,
[data-theme="ext-photo-warm-flannel"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-flannel"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_flannel_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-flannel"] .section-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-flannel"] .section-subtitle{font-family:'Karla',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-flannel"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 12px rgba(72,84,99,0.08);}
[data-theme="ext-photo-warm-flannel"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 12px rgba(72,84,99,0.08);}
[data-theme="ext-photo-warm-flannel"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-flannel"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-flannel"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-flannel"] .stat-num{font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-flannel"] .stat-label{font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-flannel"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 12px rgba(72,84,99,0.08);}
[data-theme="ext-photo-warm-flannel"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-flannel"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-flannel"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-flannel"] .album-title{font-family:'Libre Baskerville',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-flannel"] .album-meta{font-family:'Karla',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-flannel"] .btn.primary{background:var(--accent);color:#fff;font-family:'Karla',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-flannel"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-flannel"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Karla',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-flannel"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-flannel"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(72,84,99,0.08);}
[data-theme="ext-photo-warm-flannel"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-flannel"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-flannel"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-flannel"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-flannel"] .footer-links a{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-flannel"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-flannel"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-flannel"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-flannel"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-flannel"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(72,84,99,0.08);}
[data-theme="ext-photo-warm-flannel"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-flannel"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-flannel"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-flannel"] .mobile-menu a{color:var(--text-dim);font-family:'Karla',sans-serif;}
[data-theme="ext-photo-warm-flannel"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-flannel"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-flannel"] .ts-name{color:var(--text);font-family:'Karla',sans-serif;}
[data-theme="ext-photo-warm-flannel"] a{color:var(--accent);}
[data-theme="ext-photo-warm-flannel"] .eyebrow{color:var(--accent);font-family:'Karla',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-flannel"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-vanilla  (香草拿铁 / Vanilla Latte) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-vanilla"]{
  --bg:#fefcf8;--bg-2:#faf5ed;--bg-3:#f0e8d8;--bg-4:#e8d8c0;
  --text:#2a2418;--text-dim:#5a4e34;--text-mid:#7a6e54;
  --accent:#c8a878;--accent-glow:rgba(200,168,120,0.2);--white:#2a2418;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fefcf8ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-vanilla"] body{background:#fefcf8;color:#2a2418;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-vanilla"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(200,168,120,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-vanilla"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-vanilla"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-vanilla"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-vanilla"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-vanilla"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-vanilla"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-vanilla"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-vanilla"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-vanilla"] .hero > .hero-content,
[data-theme="ext-photo-warm-vanilla"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-vanilla"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_vanilla_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-vanilla"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-vanilla"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-vanilla"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 12px rgba(200,168,120,0.08);}
[data-theme="ext-photo-warm-vanilla"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 12px rgba(200,168,120,0.08);}
[data-theme="ext-photo-warm-vanilla"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-vanilla"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-vanilla"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-vanilla"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-vanilla"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-vanilla"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 12px rgba(200,168,120,0.08);}
[data-theme="ext-photo-warm-vanilla"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-vanilla"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-vanilla"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-vanilla"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-vanilla"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-vanilla"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-vanilla"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-vanilla"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-vanilla"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-vanilla"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(200,168,120,0.08);}
[data-theme="ext-photo-warm-vanilla"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-vanilla"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-vanilla"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-vanilla"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-vanilla"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-vanilla"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-vanilla"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-vanilla"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-vanilla"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-vanilla"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 12px rgba(200,168,120,0.08);}
[data-theme="ext-photo-warm-vanilla"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-vanilla"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-vanilla"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-vanilla"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-warm-vanilla"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-vanilla"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-vanilla"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-warm-vanilla"] a{color:var(--accent);}
[data-theme="ext-photo-warm-vanilla"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-vanilla"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-hearth  (壁炉暖光 / Hearth Glow) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-hearth"]{
  --bg:#fff8f3;--bg-2:#fae8d8;--bg-3:#f0d0b0;--bg-4:#e8b888;
  --text:#2a1810;--text-dim:#5a3830;--text-mid:#7a5850;
  --accent:#e27a47;--accent-glow:rgba(226,122,71,0.25);--white:#2a1810;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f3ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Playfair Display',serif;--font-body:'Source Sans 3',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-hearth"] body{background:#fff8f3;color:#2a1810;font-family:'Source Sans 3',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-hearth"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(226,122,71,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-hearth"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-hearth"] .nav-link{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-hearth"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-hearth"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-hearth"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-hearth"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-hearth"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-hearth"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-hearth"] .hero > .hero-content,
[data-theme="ext-photo-warm-hearth"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-hearth"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_hearth_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-hearth"] .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-hearth"] .section-subtitle{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-hearth"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(226,122,71,0.12);}
[data-theme="ext-photo-warm-hearth"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(226,122,71,0.12);}
[data-theme="ext-photo-warm-hearth"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-hearth"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-hearth"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-hearth"] .stat-num{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-hearth"] .stat-label{font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-hearth"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(226,122,71,0.12);}
[data-theme="ext-photo-warm-hearth"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-hearth"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-hearth"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-hearth"] .album-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-hearth"] .album-meta{font-family:'Source Sans 3',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-hearth"] .btn.primary{background:var(--accent);color:#fff;font-family:'Source Sans 3',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-hearth"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-hearth"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Source Sans 3',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-hearth"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-hearth"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(226,122,71,0.12);}
[data-theme="ext-photo-warm-hearth"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-hearth"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-hearth"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-hearth"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-hearth"] .footer-links a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-hearth"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-hearth"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-hearth"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-hearth"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-hearth"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(226,122,71,0.12);}
[data-theme="ext-photo-warm-hearth"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-hearth"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-hearth"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-hearth"] .mobile-menu a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-photo-warm-hearth"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-hearth"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-hearth"] .ts-name{color:var(--text);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-photo-warm-hearth"] a{color:var(--accent);}
[data-theme="ext-photo-warm-hearth"] .eyebrow{color:var(--accent);font-family:'Source Sans 3',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-hearth"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-warm-nordic  (北欧暖白 / Nordic Warm) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-warm-nordic"]{
  --bg:#fafafa;--bg-2:#f2f2f0;--bg-3:#e8e8e5;--bg-4:#dedede;
  --text:#1a1a1a;--text-dim:#4a4a4a;--text-mid:#6a6a6a;
  --accent:#9ba1a6;--accent-glow:rgba(155,161,166,0.2);--white:#1a1a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafafaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cinzel',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-warm-nordic"] body{background:#fafafa;color:#1a1a1a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-photo-warm-nordic"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(155,161,166,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-warm-nordic"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-warm-nordic"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-warm-nordic"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-warm-nordic"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-warm-nordic"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-warm-nordic"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-warm-nordic"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-warm-nordic"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-warm-nordic"] .hero > .hero-content,
[data-theme="ext-photo-warm-nordic"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-warm-nordic"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_warm_nordic_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-warm-nordic"] .section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-warm-nordic"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-warm-nordic"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 10px rgba(108,113,117,0.06);}
[data-theme="ext-photo-warm-nordic"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 10px rgba(108,113,117,0.06);}
[data-theme="ext-photo-warm-nordic"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-warm-nordic"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-warm-nordic"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-warm-nordic"] .stat-num{font-family:'Cinzel',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-warm-nordic"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-warm-nordic"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 10px rgba(108,113,117,0.06);}
[data-theme="ext-photo-warm-nordic"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-warm-nordic"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-warm-nordic"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-warm-nordic"] .album-title{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-warm-nordic"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-warm-nordic"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-warm-nordic"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-warm-nordic"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-warm-nordic"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-warm-nordic"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 10px rgba(108,113,117,0.06);}
[data-theme="ext-photo-warm-nordic"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-nordic"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-warm-nordic"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-warm-nordic"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-warm-nordic"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-warm-nordic"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-nordic"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-warm-nordic"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-nordic"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-warm-nordic"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 10px rgba(108,113,117,0.06);}
[data-theme="ext-photo-warm-nordic"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-warm-nordic"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-warm-nordic"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-warm-nordic"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-warm-nordic"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-warm-nordic"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-warm-nordic"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-warm-nordic"] a{color:var(--accent);}
[data-theme="ext-photo-warm-nordic"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-warm-nordic"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-arena  (竞技场 / Arena Sport) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-arena"]{
  --bg:#f8faff;--bg-2:#eef2fa;--bg-3:#e0e8f5;--bg-4:#d0dcee;
  --text:#0a1a2a;--text-dim:#2a4a5a;--text-mid:#4a6a7a;
  --accent:#0074ff;--accent-glow:rgba(0,116,255,0.2);--white:#0a1a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f8faffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Russo One',serif;--font-body:'Chivo',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-arena"] body{background:#f8faff;color:#0a1a2a;font-family:'Chivo',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-arena"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(0,116,255,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-arena"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-arena"] .nav-link{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-arena"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-arena"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-arena"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-arena"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-arena"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-arena"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-arena"] .hero > .hero-content,
[data-theme="ext-photo-sport-arena"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-arena"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_arena_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-arena"] .section-title{font-family:'Russo One',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-arena"] .section-subtitle{font-family:'Chivo',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-arena"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(0,116,255,0.12);}
[data-theme="ext-photo-sport-arena"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(0,116,255,0.12);}
[data-theme="ext-photo-sport-arena"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-arena"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-arena"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-arena"] .stat-num{font-family:'Russo One',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-arena"] .stat-label{font-family:'Chivo',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-arena"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(0,116,255,0.12);}
[data-theme="ext-photo-sport-arena"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-arena"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-arena"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-arena"] .album-title{font-family:'Russo One',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-arena"] .album-meta{font-family:'Chivo',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-arena"] .btn.primary{background:var(--accent);color:#fff;font-family:'Chivo',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-arena"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-arena"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Chivo',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-arena"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-arena"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(0,116,255,0.12);}
[data-theme="ext-photo-sport-arena"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-arena"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-arena"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-arena"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-arena"] .footer-links a{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-arena"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-arena"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-arena"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-arena"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-arena"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(0,116,255,0.12);}
[data-theme="ext-photo-sport-arena"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-arena"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-arena"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-arena"] .mobile-menu a{color:var(--text-dim);font-family:'Chivo',sans-serif;}
[data-theme="ext-photo-sport-arena"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-arena"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-arena"] .ts-name{color:var(--text);font-family:'Chivo',sans-serif;}
[data-theme="ext-photo-sport-arena"] a{color:var(--accent);}
[data-theme="ext-photo-sport-arena"] .eyebrow{color:var(--accent);font-family:'Chivo',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-arena"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-champion  (冠军时刻 / Champion) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-champion"]{
  --bg:#fafaff;--bg-2:#f0f0fa;--bg-3:#e5e5f0;--bg-4:#d8d8e5;
  --text:#0a0a2a;--text-dim:#2a2a4a;--text-mid:#4a4a6a;
  --accent:#ffd700;--accent-glow:rgba(255,215,0,0.25);--white:#0a0a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafaffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Anton',serif;--font-body:'Oswald',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-champion"] body{background:#fafaff;color:#0a0a2a;font-family:'Oswald',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-champion"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,215,0,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-champion"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-champion"] .nav-link{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-champion"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-champion"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-champion"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-champion"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-champion"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-champion"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-champion"] .hero > .hero-content,
[data-theme="ext-photo-sport-champion"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-champion"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_champion_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-champion"] .section-title{font-family:'Anton',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-champion"] .section-subtitle{font-family:'Oswald',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-champion"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,215,0,0.12);}
[data-theme="ext-photo-sport-champion"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,215,0,0.12);}
[data-theme="ext-photo-sport-champion"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-champion"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-champion"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-champion"] .stat-num{font-family:'Anton',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-champion"] .stat-label{font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-champion"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,215,0,0.12);}
[data-theme="ext-photo-sport-champion"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-champion"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-champion"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-champion"] .album-title{font-family:'Anton',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-champion"] .album-meta{font-family:'Oswald',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-champion"] .btn.primary{background:var(--accent);color:#fff;font-family:'Oswald',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-champion"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-champion"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Oswald',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-champion"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-champion"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,215,0,0.12);}
[data-theme="ext-photo-sport-champion"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-champion"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-champion"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-champion"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-champion"] .footer-links a{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-champion"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-champion"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-champion"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-champion"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-champion"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,215,0,0.12);}
[data-theme="ext-photo-sport-champion"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-champion"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-champion"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-champion"] .mobile-menu a{color:var(--text-dim);font-family:'Oswald',sans-serif;}
[data-theme="ext-photo-sport-champion"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-champion"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-champion"] .ts-name{color:var(--text);font-family:'Oswald',sans-serif;}
[data-theme="ext-photo-sport-champion"] a{color:var(--accent);}
[data-theme="ext-photo-sport-champion"] .eyebrow{color:var(--accent);font-family:'Oswald',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-champion"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-action  (动感瞬间 / Action Shot) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-action"]{
  --bg:#fff8f5;--bg-2:#fae8e0;--bg-3:#f0d0c5;--bg-4:#e8b8a8;
  --text:#2a0a0a;--text-dim:#5a2a2a;--text-mid:#7a4a4a;
  --accent:#ff5b3c;--accent-glow:rgba(255,91,60,0.25);--white:#2a0a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Bebas Neue',serif;--font-body:'Rajdhani',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-action"] body{background:#fff8f5;color:#2a0a0a;font-family:'Rajdhani',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-action"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,91,60,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-action"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-action"] .nav-link{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-action"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-action"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-action"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-action"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-action"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-action"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-action"] .hero > .hero-content,
[data-theme="ext-photo-sport-action"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-action"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_action_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-action"] .section-title{font-family:'Bebas Neue',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-action"] .section-subtitle{font-family:'Rajdhani',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-action"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,91,60,0.12);}
[data-theme="ext-photo-sport-action"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,91,60,0.12);}
[data-theme="ext-photo-sport-action"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-action"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-action"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-action"] .stat-num{font-family:'Bebas Neue',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-action"] .stat-label{font-family:'Rajdhani',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-action"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,91,60,0.12);}
[data-theme="ext-photo-sport-action"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-action"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-action"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-action"] .album-title{font-family:'Bebas Neue',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-action"] .album-meta{font-family:'Rajdhani',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-action"] .btn.primary{background:var(--accent);color:#fff;font-family:'Rajdhani',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-action"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-action"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Rajdhani',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-action"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-action"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,91,60,0.12);}
[data-theme="ext-photo-sport-action"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-action"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-action"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-action"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-action"] .footer-links a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-action"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-action"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-action"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-action"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-action"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,91,60,0.12);}
[data-theme="ext-photo-sport-action"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-action"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-action"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-action"] .mobile-menu a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-sport-action"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-action"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-action"] .ts-name{color:var(--text);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-sport-action"] a{color:var(--accent);}
[data-theme="ext-photo-sport-action"] .eyebrow{color:var(--accent);font-family:'Rajdhani',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-action"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-floodlight  (泛光灯下 / Floodlight) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-floodlight"]{
  --bg:#faffff;--bg-2:#f0fff8;--bg-3:#e0f5ee;--bg-4:#d0eae0;
  --text:#0a1a1a;--text-dim:#2a4a4a;--text-mid:#4a6a6a;
  --accent:#1dd3b0;--accent-glow:rgba(29,211,176,0.25);--white:#0a1a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faffffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Russo One',serif;--font-body:'Chivo',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-floodlight"] body{background:#faffff;color:#0a1a1a;font-family:'Chivo',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-floodlight"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(29,211,176,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-floodlight"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-floodlight"] .nav-link{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-floodlight"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-floodlight"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-floodlight"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-floodlight"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-floodlight"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-floodlight"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-floodlight"] .hero > .hero-content,
[data-theme="ext-photo-sport-floodlight"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-floodlight"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_floodlight_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-floodlight"] .section-title{font-family:'Russo One',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-floodlight"] .section-subtitle{font-family:'Chivo',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-floodlight"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(29,211,176,0.12);}
[data-theme="ext-photo-sport-floodlight"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(29,211,176,0.12);}
[data-theme="ext-photo-sport-floodlight"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-floodlight"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-floodlight"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-floodlight"] .stat-num{font-family:'Russo One',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-floodlight"] .stat-label{font-family:'Chivo',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-floodlight"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(29,211,176,0.12);}
[data-theme="ext-photo-sport-floodlight"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-floodlight"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-floodlight"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-floodlight"] .album-title{font-family:'Russo One',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-floodlight"] .album-meta{font-family:'Chivo',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-floodlight"] .btn.primary{background:var(--accent);color:#fff;font-family:'Chivo',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-floodlight"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-floodlight"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Chivo',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-floodlight"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-floodlight"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(29,211,176,0.12);}
[data-theme="ext-photo-sport-floodlight"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-floodlight"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-floodlight"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-floodlight"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-floodlight"] .footer-links a{color:var(--text-dim);font-family:'Chivo',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-floodlight"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-floodlight"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-floodlight"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-floodlight"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-floodlight"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(29,211,176,0.12);}
[data-theme="ext-photo-sport-floodlight"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-floodlight"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-floodlight"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-floodlight"] .mobile-menu a{color:var(--text-dim);font-family:'Chivo',sans-serif;}
[data-theme="ext-photo-sport-floodlight"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-floodlight"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-floodlight"] .ts-name{color:var(--text);font-family:'Chivo',sans-serif;}
[data-theme="ext-photo-sport-floodlight"] a{color:var(--accent);}
[data-theme="ext-photo-sport-floodlight"] .eyebrow{color:var(--accent);font-family:'Chivo',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-floodlight"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-energy  (活力四射 / Energy Burst) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-energy"]{
  --bg:#fffaff;--bg-2:#f8f0fa;--bg-3:#ece0f5;--bg-4:#decce8;
  --text:#1a0a2a;--text-dim:#4a2a4a;--text-mid:#6a4a6a;
  --accent:#ff6392;--accent-glow:rgba(255,99,146,0.25);--white:#1a0a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffaffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-energy"] body{background:#fffaff;color:#1a0a2a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-energy"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,99,146,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-energy"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-energy"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-energy"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-energy"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-energy"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-energy"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-energy"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-energy"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-energy"] .hero > .hero-content,
[data-theme="ext-photo-sport-energy"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-energy"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_energy_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-energy"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-energy"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-energy"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(255,99,146,0.12);}
[data-theme="ext-photo-sport-energy"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(255,99,146,0.12);}
[data-theme="ext-photo-sport-energy"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-energy"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-energy"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-energy"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-energy"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-energy"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(255,99,146,0.12);}
[data-theme="ext-photo-sport-energy"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-energy"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-energy"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-energy"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-energy"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-energy"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-energy"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-energy"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-energy"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-energy"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,99,146,0.12);}
[data-theme="ext-photo-sport-energy"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-energy"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-energy"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-energy"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-energy"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-energy"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-energy"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-energy"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-energy"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-energy"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(255,99,146,0.12);}
[data-theme="ext-photo-sport-energy"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-energy"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-energy"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-energy"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-sport-energy"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-energy"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-energy"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-sport-energy"] a{color:var(--accent);}
[data-theme="ext-photo-sport-energy"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-energy"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-citrus  (柑橘运动 / Citrus Sport) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-citrus"]{
  --bg:#fafff5;--bg-2:#f0fae0;--bg-3:#e0f5c8;--bg-4:#d0e8a8;
  --text:#0a2a0a;--text-dim:#2a5a2a;--text-mid:#4a7a4a;
  --accent:#00afb9;--accent-glow:rgba(0,175,185,0.25);--white:#0a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafff5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Fredoka',serif;--font-body:'Nunito',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-citrus"] body{background:#fafff5;color:#0a2a0a;font-family:'Nunito',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-citrus"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(0,175,185,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-citrus"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-citrus"] .nav-link{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-citrus"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-citrus"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-citrus"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-citrus"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-citrus"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-citrus"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-citrus"] .hero > .hero-content,
[data-theme="ext-photo-sport-citrus"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-citrus"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_citrus_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-citrus"] .section-title{font-family:'Fredoka',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-citrus"] .section-subtitle{font-family:'Nunito',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-citrus"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(0,175,185,0.12);}
[data-theme="ext-photo-sport-citrus"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(0,175,185,0.12);}
[data-theme="ext-photo-sport-citrus"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-citrus"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-citrus"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-citrus"] .stat-num{font-family:'Fredoka',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-citrus"] .stat-label{font-family:'Nunito',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-citrus"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(0,175,185,0.12);}
[data-theme="ext-photo-sport-citrus"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-citrus"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-citrus"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-citrus"] .album-title{font-family:'Fredoka',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-citrus"] .album-meta{font-family:'Nunito',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-citrus"] .btn.primary{background:var(--accent);color:#fff;font-family:'Nunito',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-citrus"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-citrus"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Nunito',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-citrus"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-citrus"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(0,175,185,0.12);}
[data-theme="ext-photo-sport-citrus"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-citrus"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-citrus"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-citrus"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-citrus"] .footer-links a{color:var(--text-dim);font-family:'Nunito',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-citrus"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-citrus"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-citrus"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-citrus"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-citrus"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(0,175,185,0.12);}
[data-theme="ext-photo-sport-citrus"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-citrus"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-citrus"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-citrus"] .mobile-menu a{color:var(--text-dim);font-family:'Nunito',sans-serif;}
[data-theme="ext-photo-sport-citrus"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-citrus"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-citrus"] .ts-name{color:var(--text);font-family:'Nunito',sans-serif;}
[data-theme="ext-photo-sport-citrus"] a{color:var(--accent);}
[data-theme="ext-photo-sport-citrus"] .eyebrow{color:var(--accent);font-family:'Nunito',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-citrus"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-monochrome  (黑白竞技 / Mono Sport) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-monochrome"]{
  --bg:#fafafa;--bg-2:#f0f0f0;--bg-3:#e0e0e0;--bg-4:#d0d0d0;
  --text:#0a0a0a;--text-dim:#3a3a3a;--text-mid:#5a5a5a;
  --accent:#2e2e2e;--accent-glow:rgba(46,46,46,0.15);--white:#0a0a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafafaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Anton',serif;--font-body:'Oswald',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-monochrome"] body{background:#fafafa;color:#0a0a0a;font-family:'Oswald',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-monochrome"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(46,46,46,0.15) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-monochrome"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-monochrome"] .nav-link{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-monochrome"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-monochrome"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-monochrome"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-monochrome"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-monochrome"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-monochrome"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-monochrome"] .hero > .hero-content,
[data-theme="ext-photo-sport-monochrome"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-monochrome"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_monochrome_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-monochrome"] .section-title{font-family:'Anton',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-monochrome"] .section-subtitle{font-family:'Oswald',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-monochrome"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 10px rgba(0,0,0,0.06);}
[data-theme="ext-photo-sport-monochrome"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 10px rgba(0,0,0,0.06);}
[data-theme="ext-photo-sport-monochrome"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-monochrome"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-monochrome"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-monochrome"] .stat-num{font-family:'Anton',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-monochrome"] .stat-label{font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-monochrome"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 10px rgba(0,0,0,0.06);}
[data-theme="ext-photo-sport-monochrome"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-monochrome"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-monochrome"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-monochrome"] .album-title{font-family:'Anton',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-monochrome"] .album-meta{font-family:'Oswald',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-monochrome"] .btn.primary{background:var(--accent);color:#fff;font-family:'Oswald',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-monochrome"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-monochrome"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Oswald',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-monochrome"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-monochrome"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 10px rgba(0,0,0,0.06);}
[data-theme="ext-photo-sport-monochrome"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-monochrome"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-monochrome"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-monochrome"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-monochrome"] .footer-links a{color:var(--text-dim);font-family:'Oswald',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-monochrome"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-monochrome"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-monochrome"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-monochrome"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-monochrome"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 10px rgba(0,0,0,0.06);}
[data-theme="ext-photo-sport-monochrome"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-monochrome"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-monochrome"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-monochrome"] .mobile-menu a{color:var(--text-dim);font-family:'Oswald',sans-serif;}
[data-theme="ext-photo-sport-monochrome"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-monochrome"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-monochrome"] .ts-name{color:var(--text);font-family:'Oswald',sans-serif;}
[data-theme="ext-photo-sport-monochrome"] a{color:var(--accent);}
[data-theme="ext-photo-sport-monochrome"] .eyebrow{color:var(--accent);font-family:'Oswald',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-monochrome"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-sport-drama  (戏剧时刻 / Drama Moment) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-sport-drama"]{
  --bg:#f5f5fa;--bg-2:#eaebf0;--bg-3:#dadbe5;--bg-4:#c8cad5;
  --text:#0a0a1a;--text-dim:#2a2a3a;--text-mid:#4a4a5a;
  --accent:#ff5733;--accent-glow:rgba(255,87,51,0.25);--white:#0a0a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5f5faee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Bebas Neue',serif;--font-body:'Rajdhani',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-sport-drama"] body{background:#f5f5fa;color:#0a0a1a;font-family:'Rajdhani',sans-serif;cursor:none;}
[data-theme="ext-photo-sport-drama"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,87,51,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-sport-drama"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-sport-drama"] .nav-link{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-sport-drama"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-sport-drama"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-sport-drama"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-sport-drama"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-sport-drama"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-sport-drama"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-sport-drama"] .hero > .hero-content,
[data-theme="ext-photo-sport-drama"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-sport-drama"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_sport_drama_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-sport-drama"] .section-title{font-family:'Bebas Neue',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-sport-drama"] .section-subtitle{font-family:'Rajdhani',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-sport-drama"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,87,51,0.12);}
[data-theme="ext-photo-sport-drama"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,87,51,0.12);}
[data-theme="ext-photo-sport-drama"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-sport-drama"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-sport-drama"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-sport-drama"] .stat-num{font-family:'Bebas Neue',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-sport-drama"] .stat-label{font-family:'Rajdhani',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-sport-drama"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,87,51,0.12);}
[data-theme="ext-photo-sport-drama"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-sport-drama"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-sport-drama"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-sport-drama"] .album-title{font-family:'Bebas Neue',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-sport-drama"] .album-meta{font-family:'Rajdhani',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-sport-drama"] .btn.primary{background:var(--accent);color:#fff;font-family:'Rajdhani',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-sport-drama"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-sport-drama"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Rajdhani',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-sport-drama"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-sport-drama"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,87,51,0.12);}
[data-theme="ext-photo-sport-drama"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-drama"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-sport-drama"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-sport-drama"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-sport-drama"] .footer-links a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-sport-drama"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-drama"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-sport-drama"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-drama"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-sport-drama"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,87,51,0.12);}
[data-theme="ext-photo-sport-drama"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-sport-drama"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-sport-drama"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-sport-drama"] .mobile-menu a{color:var(--text-dim);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-sport-drama"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-sport-drama"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-sport-drama"] .ts-name{color:var(--text);font-family:'Rajdhani',sans-serif;}
[data-theme="ext-photo-sport-drama"] a{color:var(--accent);}
[data-theme="ext-photo-sport-drama"] .eyebrow{color:var(--accent);font-family:'Rajdhani',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-sport-drama"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-aurora  (极光时尚 / Aurora Fashion) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-aurora"]{
  --bg:#fafcff;--bg-2:#f0f5fc;--bg-3:#e0ecfa;--bg-4:#d0e0f0;
  --text:#0a1a2a;--text-dim:#3a4a5a;--text-mid:#5a6a7a;
  --accent:#A9E1FF;--accent-glow:rgba(169,225,255,0.3);--white:#0a1a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafcffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Syne',serif;--font-body:'Space Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-aurora"] body{background:#fafcff;color:#0a1a2a;font-family:'Space Grotesk',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-aurora"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(169,225,255,0.3) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-aurora"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-aurora"] .nav-link{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-aurora"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-aurora"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-aurora"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-aurora"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-aurora"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-aurora"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-aurora"] .hero > .hero-content,
[data-theme="ext-photo-fashion-aurora"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-aurora"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_aurora_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-aurora"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-aurora"] .section-subtitle{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-aurora"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(169,225,255,0.12);}
[data-theme="ext-photo-fashion-aurora"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(169,225,255,0.12);}
[data-theme="ext-photo-fashion-aurora"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-aurora"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-aurora"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-aurora"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-aurora"] .stat-label{font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-aurora"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(169,225,255,0.12);}
[data-theme="ext-photo-fashion-aurora"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-aurora"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-aurora"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-aurora"] .album-title{font-family:'Syne',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-aurora"] .album-meta{font-family:'Space Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-aurora"] .btn.primary{background:var(--accent);color:#fff;font-family:'Space Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-aurora"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-aurora"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Space Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-aurora"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-aurora"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(169,225,255,0.12);}
[data-theme="ext-photo-fashion-aurora"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-aurora"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-aurora"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-aurora"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-aurora"] .footer-links a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-aurora"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-aurora"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-aurora"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-aurora"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-aurora"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(169,225,255,0.12);}
[data-theme="ext-photo-fashion-aurora"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-aurora"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-aurora"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-aurora"] .mobile-menu a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-photo-fashion-aurora"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-aurora"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-aurora"] .ts-name{color:var(--text);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-photo-fashion-aurora"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-aurora"] .eyebrow{color:var(--accent);font-family:'Space Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-aurora"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-sunset  (日落时尚 / Sunset Fashion) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-sunset"]{
  --bg:#fff8f5;--bg-2:#faece5;--bg-3:#f0d8cc;--bg-4:#e8c0b0;
  --text:#2a1410;--text-dim:#5a3430;--text-mid:#7a5450;
  --accent:#FF6D8B;--accent-glow:rgba(255,109,139,0.25);--white:#2a1410;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fff8f5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-sunset"] body{background:#fff8f5;color:#2a1410;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-sunset"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(255,109,139,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-sunset"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-sunset"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-sunset"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-sunset"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-sunset"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-sunset"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-sunset"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-sunset"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-sunset"] .hero > .hero-content,
[data-theme="ext-photo-fashion-sunset"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-sunset"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_sunset_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-sunset"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-sunset"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-sunset"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(255,109,139,0.12);}
[data-theme="ext-photo-fashion-sunset"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(255,109,139,0.12);}
[data-theme="ext-photo-fashion-sunset"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-sunset"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-sunset"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-sunset"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-sunset"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-sunset"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(255,109,139,0.12);}
[data-theme="ext-photo-fashion-sunset"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-sunset"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-sunset"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-sunset"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-sunset"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-sunset"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-sunset"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-sunset"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-sunset"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-sunset"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,109,139,0.12);}
[data-theme="ext-photo-fashion-sunset"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-sunset"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-sunset"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-sunset"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-sunset"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-sunset"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-sunset"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-sunset"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-sunset"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-sunset"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(255,109,139,0.12);}
[data-theme="ext-photo-fashion-sunset"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-sunset"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-sunset"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-sunset"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-fashion-sunset"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-sunset"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-sunset"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-fashion-sunset"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-sunset"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-sunset"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-retro  (复古时尚 / Retro Fashion) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-retro"]{
  --bg:#faf8f0;--bg-2:#f5f0e0;--bg-3:#ebe4cc;--bg-4:#ded4b8;
  --text:#1a2a14;--text-dim:#3a4a2a;--text-mid:#5a6a4a;
  --accent:#138A7D;--accent-glow:rgba(19,138,125,0.25);--white:#1a2a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faf8f0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Libre Baskerville',serif;--font-body:'Karla',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-retro"] body{background:#faf8f0;color:#1a2a14;font-family:'Karla',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-retro"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(19,138,125,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-retro"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-retro"] .nav-link{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-retro"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-retro"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-retro"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-retro"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-retro"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-retro"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-retro"] .hero > .hero-content,
[data-theme="ext-photo-fashion-retro"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-retro"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_retro_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-retro"] .section-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-retro"] .section-subtitle{font-family:'Karla',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-retro"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(19,138,125,0.12);}
[data-theme="ext-photo-fashion-retro"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(19,138,125,0.12);}
[data-theme="ext-photo-fashion-retro"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-retro"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-retro"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-retro"] .stat-num{font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-retro"] .stat-label{font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-retro"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(19,138,125,0.12);}
[data-theme="ext-photo-fashion-retro"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-retro"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-retro"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-retro"] .album-title{font-family:'Libre Baskerville',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-retro"] .album-meta{font-family:'Karla',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-retro"] .btn.primary{background:var(--accent);color:#fff;font-family:'Karla',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-retro"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-retro"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Karla',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-retro"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-retro"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(19,138,125,0.12);}
[data-theme="ext-photo-fashion-retro"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-retro"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-retro"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-retro"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-retro"] .footer-links a{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-retro"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-retro"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-retro"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-retro"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-retro"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(19,138,125,0.12);}
[data-theme="ext-photo-fashion-retro"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-retro"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-retro"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-retro"] .mobile-menu a{color:var(--text-dim);font-family:'Karla',sans-serif;}
[data-theme="ext-photo-fashion-retro"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-retro"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-retro"] .ts-name{color:var(--text);font-family:'Karla',sans-serif;}
[data-theme="ext-photo-fashion-retro"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-retro"] .eyebrow{color:var(--accent);font-family:'Karla',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-retro"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-rosewood  (玫瑰木 / Rosewood) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-rosewood"]{
  --bg:#fdf8f6;--bg-2:#f8ece8;--bg-3:#f0d8d2;--bg-4:#e8c5be;
  --text:#2a1814;--text-dim:#5a3830;--text-mid:#7a5850;
  --accent:#B2545B;--accent-glow:rgba(178,84,91,0.2);--white:#2a1814;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdf8f6ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Playfair Display',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-rosewood"] body{background:#fdf8f6;color:#2a1814;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-rosewood"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(178,84,91,0.2) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-rosewood"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-rosewood"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-rosewood"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-rosewood"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-rosewood"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-rosewood"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-rosewood"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-rosewood"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-rosewood"] .hero > .hero-content,
[data-theme="ext-photo-fashion-rosewood"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-rosewood"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_rosewood_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-rosewood"] .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-rosewood"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-rosewood"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(178,84,91,0.1);}
[data-theme="ext-photo-fashion-rosewood"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(178,84,91,0.1);}
[data-theme="ext-photo-fashion-rosewood"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-rosewood"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-rosewood"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-rosewood"] .stat-num{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-rosewood"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-rosewood"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(178,84,91,0.1);}
[data-theme="ext-photo-fashion-rosewood"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-rosewood"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-rosewood"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-rosewood"] .album-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-rosewood"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-rosewood"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-rosewood"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-rosewood"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-rosewood"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-rosewood"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(178,84,91,0.1);}
[data-theme="ext-photo-fashion-rosewood"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-rosewood"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-rosewood"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-rosewood"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-rosewood"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-rosewood"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-rosewood"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-rosewood"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-rosewood"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-rosewood"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(178,84,91,0.1);}
[data-theme="ext-photo-fashion-rosewood"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-rosewood"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-rosewood"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-rosewood"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-photo-fashion-rosewood"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-rosewood"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-rosewood"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-photo-fashion-rosewood"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-rosewood"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-rosewood"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-galaxy  (银河时尚 / Galaxy) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-galaxy"]{
  --bg:#f8f5ff;--bg-2:#ece5f8;--bg-3:#ddd0ee;--bg-4:#ccbce0;
  --text:#1a0a2a;--text-dim:#3a2a4a;--text-mid:#5a4a6a;
  --accent:#A885FF;--accent-glow:rgba(168,133,255,0.25);--white:#1a0a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f8f5ffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Syne',serif;--font-body:'Space Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-galaxy"] body{background:#f8f5ff;color:#1a0a2a;font-family:'Space Grotesk',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-galaxy"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(168,133,255,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-galaxy"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-galaxy"] .nav-link{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-galaxy"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-galaxy"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-galaxy"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-galaxy"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-galaxy"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-galaxy"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-galaxy"] .hero > .hero-content,
[data-theme="ext-photo-fashion-galaxy"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-galaxy"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_galaxy_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-galaxy"] .section-title{font-family:'Syne',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-galaxy"] .section-subtitle{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-galaxy"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(168,133,255,0.12);}
[data-theme="ext-photo-fashion-galaxy"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(168,133,255,0.12);}
[data-theme="ext-photo-fashion-galaxy"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-galaxy"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-galaxy"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-galaxy"] .stat-num{font-family:'Syne',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-galaxy"] .stat-label{font-family:'Space Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-galaxy"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(168,133,255,0.12);}
[data-theme="ext-photo-fashion-galaxy"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-galaxy"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-galaxy"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-galaxy"] .album-title{font-family:'Syne',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-galaxy"] .album-meta{font-family:'Space Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-galaxy"] .btn.primary{background:var(--accent);color:#fff;font-family:'Space Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-galaxy"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-galaxy"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Space Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-galaxy"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-galaxy"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(168,133,255,0.12);}
[data-theme="ext-photo-fashion-galaxy"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-galaxy"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-galaxy"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-galaxy"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-galaxy"] .footer-links a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-galaxy"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-galaxy"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-galaxy"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-galaxy"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-galaxy"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(168,133,255,0.12);}
[data-theme="ext-photo-fashion-galaxy"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-galaxy"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-galaxy"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-galaxy"] .mobile-menu a{color:var(--text-dim);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-photo-fashion-galaxy"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-galaxy"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-galaxy"] .ts-name{color:var(--text);font-family:'Space Grotesk',sans-serif;}
[data-theme="ext-photo-fashion-galaxy"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-galaxy"] .eyebrow{color:var(--accent);font-family:'Space Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-galaxy"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-amber  (琥珀时尚 / Amber Fashion) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-amber"]{
  --bg:#fffaf0;--bg-2:#faedda;--bg-3:#f0dab0;--bg-4:#e8c890;
  --text:#2a1a0a;--text-dim:#5a4a2a;--text-mid:#7a6a4a;
  --accent:#D69A3C;--accent-glow:rgba(214,154,60,0.25);--white:#2a1a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffaf0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'Spectral',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-amber"] body{background:#fffaf0;color:#2a1a0a;font-family:'Spectral',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-amber"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(214,154,60,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-amber"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-amber"] .nav-link{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-amber"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-amber"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-amber"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-amber"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-amber"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-amber"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-amber"] .hero > .hero-content,
[data-theme="ext-photo-fashion-amber"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-amber"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_amber_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-amber"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-amber"] .section-subtitle{font-family:'Spectral',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-amber"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(214,154,60,0.12);}
[data-theme="ext-photo-fashion-amber"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(214,154,60,0.12);}
[data-theme="ext-photo-fashion-amber"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-amber"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-amber"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-amber"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-amber"] .stat-label{font-family:'Spectral',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-amber"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(214,154,60,0.12);}
[data-theme="ext-photo-fashion-amber"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-amber"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-amber"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-amber"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-amber"] .album-meta{font-family:'Spectral',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-amber"] .btn.primary{background:var(--accent);color:#fff;font-family:'Spectral',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-amber"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-amber"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Spectral',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-amber"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-amber"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(214,154,60,0.12);}
[data-theme="ext-photo-fashion-amber"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-amber"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-amber"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-amber"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-amber"] .footer-links a{color:var(--text-dim);font-family:'Spectral',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-amber"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-amber"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-amber"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-amber"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-amber"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(214,154,60,0.12);}
[data-theme="ext-photo-fashion-amber"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-amber"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-amber"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-amber"] .mobile-menu a{color:var(--text-dim);font-family:'Spectral',sans-serif;}
[data-theme="ext-photo-fashion-amber"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-amber"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-amber"] .ts-name{color:var(--text);font-family:'Spectral',sans-serif;}
[data-theme="ext-photo-fashion-amber"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-amber"] .eyebrow{color:var(--accent);font-family:'Spectral',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-amber"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-dusty  (灰玫瑰 / Dusty Rose) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-dusty"]{
  --bg:#fdf8f8;--bg-2:#f8ede8;--bg-3:#f0d8d2;--bg-4:#e8c5be;
  --text:#2a1414;--text-dim:#5a3434;--text-mid:#7a5454;
  --accent:#C19FA2;--accent-glow:rgba(193,159,162,0.25);--white:#2a1414;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdf8f8ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cormorant Garamond',serif;--font-body:'Karla',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-dusty"] body{background:#fdf8f8;color:#2a1414;font-family:'Karla',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-dusty"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(193,159,162,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-dusty"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-dusty"] .nav-link{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-dusty"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-dusty"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-dusty"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-dusty"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-dusty"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-dusty"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-dusty"] .hero > .hero-content,
[data-theme="ext-photo-fashion-dusty"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-dusty"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_dusty_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-dusty"] .section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-dusty"] .section-subtitle{font-family:'Karla',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-dusty"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(193,159,162,0.1);}
[data-theme="ext-photo-fashion-dusty"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(193,159,162,0.1);}
[data-theme="ext-photo-fashion-dusty"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-dusty"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-dusty"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-dusty"] .stat-num{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-dusty"] .stat-label{font-family:'Karla',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-dusty"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(193,159,162,0.1);}
[data-theme="ext-photo-fashion-dusty"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-dusty"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-dusty"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-dusty"] .album-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-dusty"] .album-meta{font-family:'Karla',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-dusty"] .btn.primary{background:var(--accent);color:#fff;font-family:'Karla',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-dusty"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-dusty"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Karla',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-dusty"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-dusty"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(193,159,162,0.1);}
[data-theme="ext-photo-fashion-dusty"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-dusty"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-dusty"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-dusty"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-dusty"] .footer-links a{color:var(--text-dim);font-family:'Karla',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-dusty"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-dusty"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-dusty"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-dusty"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-dusty"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(193,159,162,0.1);}
[data-theme="ext-photo-fashion-dusty"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-dusty"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-dusty"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-dusty"] .mobile-menu a{color:var(--text-dim);font-family:'Karla',sans-serif;}
[data-theme="ext-photo-fashion-dusty"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-dusty"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-dusty"] .ts-name{color:var(--text);font-family:'Karla',sans-serif;}
[data-theme="ext-photo-fashion-dusty"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-dusty"] .eyebrow{color:var(--accent);font-family:'Karla',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-dusty"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-fashion-butter  (黄油时尚 / Butter Fashion) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-fashion-butter"]{
  --bg:#fffef0;--bg-2:#faf5d8;--bg-3:#f0ecb0;--bg-4:#e8e088;
  --text:#2a2a0a;--text-dim:#5a5a2a;--text-mid:#7a7a4a;
  --accent:#F4D06F;--accent-glow:rgba(244,208,111,0.25);--white:#2a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fffef0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Outfit',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-fashion-butter"] body{background:#fffef0;color:#2a2a0a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-fashion-butter"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(244,208,111,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-fashion-butter"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-fashion-butter"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-fashion-butter"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-butter"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-fashion-butter"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-fashion-butter"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-fashion-butter"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-fashion-butter"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-fashion-butter"] .hero > .hero-content,
[data-theme="ext-photo-fashion-butter"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-fashion-butter"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_fashion_butter_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-fashion-butter"] .section-title{font-family:'Outfit',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-fashion-butter"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-fashion-butter"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(244,208,111,0.12);}
[data-theme="ext-photo-fashion-butter"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(244,208,111,0.12);}
[data-theme="ext-photo-fashion-butter"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-fashion-butter"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-fashion-butter"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-fashion-butter"] .stat-num{font-family:'Outfit',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-fashion-butter"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-fashion-butter"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(244,208,111,0.12);}
[data-theme="ext-photo-fashion-butter"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-fashion-butter"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-fashion-butter"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-fashion-butter"] .album-title{font-family:'Outfit',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-fashion-butter"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-fashion-butter"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-fashion-butter"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-fashion-butter"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-fashion-butter"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-fashion-butter"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(244,208,111,0.12);}
[data-theme="ext-photo-fashion-butter"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-butter"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-fashion-butter"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-fashion-butter"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-fashion-butter"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-fashion-butter"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-butter"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-fashion-butter"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-butter"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-fashion-butter"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(244,208,111,0.12);}
[data-theme="ext-photo-fashion-butter"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-fashion-butter"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-fashion-butter"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-fashion-butter"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-fashion-butter"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-fashion-butter"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-fashion-butter"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-fashion-butter"] a{color:var(--accent);}
[data-theme="ext-photo-fashion-butter"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-fashion-butter"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-arctic  (北极纯净 / Arctic Pure) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-arctic"]{
  --bg:#faffff;--bg-2:#f0fafa;--bg-3:#e0f0f5;--bg-4:#d0e4ea;
  --text:#0a1a1a;--text-dim:#2a4a4a;--text-mid:#4a6a6a;
  --accent:#7DB4C7;--accent-glow:rgba(125,180,199,0.25);--white:#0a1a1a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#faffffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Cinzel',serif;--font-body:'Hanken Grotesk',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-arctic"] body{background:#faffff;color:#0a1a1a;font-family:'Hanken Grotesk',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-arctic"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(125,180,199,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-arctic"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-arctic"] .nav-link{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-arctic"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-arctic"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-arctic"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-arctic"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-arctic"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-arctic"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-arctic"] .hero > .hero-content,
[data-theme="ext-photo-pure-arctic"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-arctic"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_arctic_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-arctic"] .section-title{font-family:'Cinzel',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-arctic"] .section-subtitle{font-family:'Hanken Grotesk',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-arctic"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(125,180,199,0.12);}
[data-theme="ext-photo-pure-arctic"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(125,180,199,0.12);}
[data-theme="ext-photo-pure-arctic"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-arctic"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-arctic"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-arctic"] .stat-num{font-family:'Cinzel',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-arctic"] .stat-label{font-family:'Hanken Grotesk',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-arctic"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(125,180,199,0.12);}
[data-theme="ext-photo-pure-arctic"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-arctic"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-arctic"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-arctic"] .album-title{font-family:'Cinzel',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-arctic"] .album-meta{font-family:'Hanken Grotesk',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-arctic"] .btn.primary{background:var(--accent);color:#fff;font-family:'Hanken Grotesk',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-arctic"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-arctic"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Hanken Grotesk',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-arctic"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-arctic"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(125,180,199,0.12);}
[data-theme="ext-photo-pure-arctic"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-arctic"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-arctic"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-arctic"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-arctic"] .footer-links a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-arctic"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-arctic"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-arctic"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-arctic"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-arctic"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(125,180,199,0.12);}
[data-theme="ext-photo-pure-arctic"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-arctic"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-arctic"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-arctic"] .mobile-menu a{color:var(--text-dim);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-photo-pure-arctic"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-arctic"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-arctic"] .ts-name{color:var(--text);font-family:'Hanken Grotesk',sans-serif;}
[data-theme="ext-photo-pure-arctic"] a{color:var(--accent);}
[data-theme="ext-photo-pure-arctic"] .eyebrow{color:var(--accent);font-family:'Hanken Grotesk',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-arctic"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-ocean  (海洋清新 / Ocean Fresh) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-ocean"]{
  --bg:#f0fcff;--bg-2:#e0f5fa;--bg-3:#d0ecf0;--bg-4:#c0dde5;
  --text:#0a1a2a;--text-dim:#2a4a5a;--text-mid:#4a6a7a;
  --accent:#009EC2;--accent-glow:rgba(0,158,194,0.25);--white:#0a1a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f0fcffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-ocean"] body{background:#f0fcff;color:#0a1a2a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-ocean"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(0,158,194,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-ocean"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-ocean"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-ocean"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-ocean"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-ocean"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-ocean"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-ocean"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-ocean"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-ocean"] .hero > .hero-content,
[data-theme="ext-photo-pure-ocean"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-ocean"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_ocean_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-ocean"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-ocean"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-ocean"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 20px rgba(0,158,194,0.12);}
[data-theme="ext-photo-pure-ocean"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 20px rgba(0,158,194,0.12);}
[data-theme="ext-photo-pure-ocean"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-ocean"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-ocean"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-ocean"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-ocean"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-ocean"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 20px rgba(0,158,194,0.12);}
[data-theme="ext-photo-pure-ocean"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-ocean"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-ocean"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-ocean"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-ocean"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-ocean"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-ocean"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-ocean"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-ocean"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-ocean"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(0,158,194,0.12);}
[data-theme="ext-photo-pure-ocean"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-ocean"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-ocean"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-ocean"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-ocean"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-ocean"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-ocean"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-ocean"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-ocean"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-ocean"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 20px rgba(0,158,194,0.12);}
[data-theme="ext-photo-pure-ocean"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-ocean"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-ocean"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-ocean"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-pure-ocean"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-ocean"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-ocean"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-pure-ocean"] a{color:var(--accent);}
[data-theme="ext-photo-pure-ocean"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-ocean"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-mint  (薄荷宁静 / Mint Calm) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-mint"]{
  --bg:#f5fff8;--bg-2:#e8f5ee;--bg-3:#d0ebd8;--bg-4:#b8dcc5;
  --text:#0a2a14;--text-dim:#2a5a3a;--text-mid:#4a7a5a;
  --accent:#6AA495;--accent-glow:rgba(106,164,149,0.25);--white:#0a2a14;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#f5fff8ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Marcellus',serif;--font-body:'Source Sans 3',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-mint"] body{background:#f5fff8;color:#0a2a14;font-family:'Source Sans 3',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-mint"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(106,164,149,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-mint"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-mint"] .nav-link{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-mint"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-mint"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-mint"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-mint"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-mint"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-mint"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-mint"] .hero > .hero-content,
[data-theme="ext-photo-pure-mint"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-mint"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_mint_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-mint"] .section-title{font-family:'Marcellus',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-mint"] .section-subtitle{font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-mint"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(106,164,149,0.1);}
[data-theme="ext-photo-pure-mint"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(106,164,149,0.1);}
[data-theme="ext-photo-pure-mint"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-mint"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-mint"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-mint"] .stat-num{font-family:'Marcellus',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-mint"] .stat-label{font-family:'Source Sans 3',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-mint"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(106,164,149,0.1);}
[data-theme="ext-photo-pure-mint"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-mint"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-mint"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-mint"] .album-title{font-family:'Marcellus',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-mint"] .album-meta{font-family:'Source Sans 3',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-mint"] .btn.primary{background:var(--accent);color:#fff;font-family:'Source Sans 3',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-mint"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-mint"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Source Sans 3',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-mint"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-mint"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(106,164,149,0.1);}
[data-theme="ext-photo-pure-mint"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-mint"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-mint"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-mint"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-mint"] .footer-links a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-mint"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-mint"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-mint"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-mint"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-mint"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(106,164,149,0.1);}
[data-theme="ext-photo-pure-mint"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-mint"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-mint"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-mint"] .mobile-menu a{color:var(--text-dim);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-photo-pure-mint"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-mint"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-mint"] .ts-name{color:var(--text);font-family:'Source Sans 3',sans-serif;}
[data-theme="ext-photo-pure-mint"] a{color:var(--accent);}
[data-theme="ext-photo-pure-mint"] .eyebrow{color:var(--accent);font-family:'Source Sans 3',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-mint"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-lime  (青柠活力 / Lime Energy) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-lime"]{
  --bg:#fafff0;--bg-2:#f0fae0;--bg-3:#e0f5c0;--bg-4:#d0eca0;
  --text:#1a2a0a;--text-dim:#3a5a2a;--text-mid:#5a7a4a;
  --accent:#6FAA00;--accent-glow:rgba(111,170,0,0.25);--white:#1a2a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafff0ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Outfit',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-lime"] body{background:#fafff0;color:#1a2a0a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-lime"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(111,170,0,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-lime"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-lime"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-lime"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-lime"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-lime"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-lime"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-lime"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-lime"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-lime"] .hero > .hero-content,
[data-theme="ext-photo-pure-lime"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-lime"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_lime_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-lime"] .section-title{font-family:'Outfit',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-lime"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-lime"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(111,170,0,0.12);}
[data-theme="ext-photo-pure-lime"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(111,170,0,0.12);}
[data-theme="ext-photo-pure-lime"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-lime"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-lime"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-lime"] .stat-num{font-family:'Outfit',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-lime"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-lime"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(111,170,0,0.12);}
[data-theme="ext-photo-pure-lime"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-lime"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-lime"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-lime"] .album-title{font-family:'Outfit',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-lime"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-lime"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-lime"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-lime"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-lime"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-lime"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(111,170,0,0.12);}
[data-theme="ext-photo-pure-lime"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-lime"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-lime"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-lime"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-lime"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-lime"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-lime"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-lime"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-lime"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-lime"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(111,170,0,0.12);}
[data-theme="ext-photo-pure-lime"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-lime"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-lime"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-lime"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-pure-lime"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-lime"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-lime"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-pure-lime"] a{color:var(--accent);}
[data-theme="ext-photo-pure-lime"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-lime"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-clean  (干净明亮 / Clean Bright) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-clean"]{
  --bg:#fafefa;--bg-2:#f0f5ec;--bg-3:#e0ebd8;--bg-4:#d0dcc8;
  --text:#0a1a0a;--text-dim:#2a4a2a;--text-mid:#4a6a4a;
  --accent:#80D2AB;--accent-glow:rgba(128,210,171,0.25);--white:#0a1a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafefaee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Poppins',serif;--font-body:'Inter',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-clean"] body{background:#fafefa;color:#0a1a0a;font-family:'Inter',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-clean"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(128,210,171,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-clean"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-clean"] .nav-link{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-clean"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-clean"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-clean"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-clean"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-clean"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-clean"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-clean"] .hero > .hero-content,
[data-theme="ext-photo-pure-clean"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-clean"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_clean_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-clean"] .section-title{font-family:'Poppins',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-clean"] .section-subtitle{font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-clean"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(128,210,171,0.1);}
[data-theme="ext-photo-pure-clean"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(128,210,171,0.1);}
[data-theme="ext-photo-pure-clean"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-clean"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-clean"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-clean"] .stat-num{font-family:'Poppins',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-clean"] .stat-label{font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-clean"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(128,210,171,0.1);}
[data-theme="ext-photo-pure-clean"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-clean"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-clean"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-clean"] .album-title{font-family:'Poppins',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-clean"] .album-meta{font-family:'Inter',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-clean"] .btn.primary{background:var(--accent);color:#fff;font-family:'Inter',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-clean"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-clean"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Inter',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-clean"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-clean"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(128,210,171,0.1);}
[data-theme="ext-photo-pure-clean"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-clean"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-clean"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-clean"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-clean"] .footer-links a{color:var(--text-dim);font-family:'Inter',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-clean"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-clean"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-clean"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-clean"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-clean"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(128,210,171,0.1);}
[data-theme="ext-photo-pure-clean"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-clean"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-clean"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-clean"] .mobile-menu a{color:var(--text-dim);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-pure-clean"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-clean"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-clean"] .ts-name{color:var(--text);font-family:'Inter',sans-serif;}
[data-theme="ext-photo-pure-clean"] a{color:var(--accent);}
[data-theme="ext-photo-pure-clean"] .eyebrow{color:var(--accent);font-family:'Inter',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-clean"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-cloud  (云端纯净 / Cloud Pure) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-cloud"]{
  --bg:#fcfcfc;--bg-2:#f5f5f5;--bg-3:#ebebeb;--bg-4:#dedede;
  --text:#0a0a0a;--text-dim:#3a3a3a;--text-mid:#5a5a5a;
  --accent:#7C7C7C;--accent-glow:rgba(124,124,124,0.15);--white:#0a0a0a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fcfcfcee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'DM Serif Display',serif;--font-body:'Work Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-cloud"] body{background:#fcfcfc;color:#0a0a0a;font-family:'Work Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-cloud"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(124,124,124,0.15) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-cloud"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-cloud"] .nav-link{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-cloud"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-cloud"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-cloud"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-cloud"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-cloud"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-cloud"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-cloud"] .hero > .hero-content,
[data-theme="ext-photo-pure-cloud"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-cloud"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_cloud_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-cloud"] .section-title{font-family:'DM Serif Display',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-cloud"] .section-subtitle{font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-cloud"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 10px rgba(0,0,0,0.04);}
[data-theme="ext-photo-pure-cloud"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 10px rgba(0,0,0,0.04);}
[data-theme="ext-photo-pure-cloud"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-cloud"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-cloud"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-cloud"] .stat-num{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-cloud"] .stat-label{font-family:'Work Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-cloud"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 10px rgba(0,0,0,0.04);}
[data-theme="ext-photo-pure-cloud"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-cloud"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-cloud"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-cloud"] .album-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-cloud"] .album-meta{font-family:'Work Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-cloud"] .btn.primary{background:var(--accent);color:#fff;font-family:'Work Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-cloud"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-cloud"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Work Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-cloud"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-cloud"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 10px rgba(0,0,0,0.04);}
[data-theme="ext-photo-pure-cloud"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-cloud"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-cloud"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-cloud"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-cloud"] .footer-links a{color:var(--text-dim);font-family:'Work Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-cloud"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-cloud"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-cloud"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-cloud"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-cloud"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 10px rgba(0,0,0,0.04);}
[data-theme="ext-photo-pure-cloud"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-cloud"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-cloud"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-cloud"] .mobile-menu a{color:var(--text-dim);font-family:'Work Sans',sans-serif;}
[data-theme="ext-photo-pure-cloud"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-cloud"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-cloud"] .ts-name{color:var(--text);font-family:'Work Sans',sans-serif;}
[data-theme="ext-photo-pure-cloud"] a{color:var(--accent);}
[data-theme="ext-photo-pure-cloud"] .eyebrow{color:var(--accent);font-family:'Work Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-cloud"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-modern  (现代清新 / Modern Fresh) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-modern"]{
  --bg:#fafcff;--bg-2:#f0f5fa;--bg-3:#e0ecf0;--bg-4:#d0e0e8;
  --text:#0a1a2a;--text-dim:#2a4a5a;--text-mid:#4a6a7a;
  --accent:#45D6E2;--accent-glow:rgba(69,214,226,0.25);--white:#0a1a2a;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fafcffee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Outfit',serif;--font-body:'DM Sans',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-modern"] body{background:#fafcff;color:#0a1a2a;font-family:'DM Sans',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-modern"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(69,214,226,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-modern"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-modern"] .nav-link{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-modern"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-modern"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-modern"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-modern"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-modern"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-modern"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-modern"] .hero > .hero-content,
[data-theme="ext-photo-pure-modern"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-modern"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_modern_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-modern"] .section-title{font-family:'Outfit',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-modern"] .section-subtitle{font-family:'DM Sans',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-modern"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 18px rgba(69,214,226,0.12);}
[data-theme="ext-photo-pure-modern"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 18px rgba(69,214,226,0.12);}
[data-theme="ext-photo-pure-modern"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-modern"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-modern"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-modern"] .stat-num{font-family:'Outfit',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-modern"] .stat-label{font-family:'DM Sans',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-modern"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 18px rgba(69,214,226,0.12);}
[data-theme="ext-photo-pure-modern"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-modern"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-modern"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-modern"] .album-title{font-family:'Outfit',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-modern"] .album-meta{font-family:'DM Sans',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-modern"] .btn.primary{background:var(--accent);color:#fff;font-family:'DM Sans',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-modern"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-modern"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'DM Sans',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-modern"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-modern"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(69,214,226,0.12);}
[data-theme="ext-photo-pure-modern"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-modern"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-modern"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-modern"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-modern"] .footer-links a{color:var(--text-dim);font-family:'DM Sans',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-modern"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-modern"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-modern"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-modern"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-modern"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 18px rgba(69,214,226,0.12);}
[data-theme="ext-photo-pure-modern"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-modern"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-modern"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-modern"] .mobile-menu a{color:var(--text-dim);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-pure-modern"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-modern"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-modern"] .ts-name{color:var(--text);font-family:'DM Sans',sans-serif;}
[data-theme="ext-photo-pure-modern"] a{color:var(--accent);}
[data-theme="ext-photo-pure-modern"] .eyebrow{color:var(--accent);font-family:'DM Sans',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-modern"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* ============================================================
   THEME: ext-photo-pure-earth  (大地清新 / Earth Fresh) [PHOTO]
   ============================================================ */

[data-theme="ext-photo-pure-earth"]{
  --bg:#fdfaf5;--bg-2:#f5ede0;--bg-3:#ebe0cc;--bg-4:#dccfb5;
  --text:#2a1a10;--text-dim:#5a3a2a;--text-mid:#7a5a4a;
  --accent:#7E9C76;--accent-glow:rgba(126,156,118,0.25);--white:#2a1a10;--border:rgba(0,0,0,0.08);
  --hero-overlay-start:rgba(255,255,255,0.3);--hero-overlay-mid:rgba(255,255,255,0.5);--hero-overlay-end:rgba(255,255,255,0.85);
  --hero-overlay-color:rgba(255,255,255,0.5);--hero-overlay-gradient:linear-gradient(180deg,rgba(255,255,255,0.3) 0%,rgba(255,255,255,0.85) 100%);
  --nav-scrolled-bg:#fdfaf5ee;
  --transition:all 0.4s cubic-bezier(0.4,0,0.2,1);
  --font-display:'Spectral',serif;--font-body:'Lora',sans-serif;
  --c-on-accent:#ffffff;
}
[data-theme="ext-photo-pure-earth"] body{background:#fdfaf5;color:#2a1a10;font-family:'Lora',sans-serif;cursor:none;}
[data-theme="ext-photo-pure-earth"] body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:radial-gradient(circle at 50% 50%,rgba(126,156,118,0.25) 0%,transparent 40%);
}
[data-theme="ext-photo-pure-earth"] .navbar{background:var(--nav-scrolled-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:var(--transition);}
[data-theme="ext-photo-pure-earth"] .nav-link{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.88rem;letter-spacing:0.04em;transition:var(--transition);position:relative;}
[data-theme="ext-photo-pure-earth"] .nav-link:hover{color:var(--accent);}
[data-theme="ext-photo-pure-earth"] .nav-link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);transition:var(--transition);}
[data-theme="ext-photo-pure-earth"] .nav-link:hover::after{width:100%;}
[data-theme="ext-photo-pure-earth"] .hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;overflow:hidden;padding:6rem 1.5rem 6rem;}
[data-theme="ext-photo-pure-earth"] .hero-bg{position:absolute;inset:0;z-index:0;}
[data-theme="ext-photo-pure-earth"] .hero-overlay{position:absolute;inset:0;z-index:1;}
[data-theme="ext-photo-pure-earth"] .hero > .hero-content,
[data-theme="ext-photo-pure-earth"] .hero > .hero-scroll{position:relative;z-index:2;}
[data-theme="ext-photo-pure-earth"] .hero-scroll{position:relative;margin-top:3.5rem;display:flex;flex-direction:column;align-items:center;gap:0.6rem;color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;z-index:2;}
@keyframes ext_photo_pure_earth_scroll{0%{transform:translateY(-100%);}100%{transform:translateY(250%);}}
[data-theme="ext-photo-pure-earth"] .section-title{font-family:'Spectral',serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;color:var(--text);text-shadow:0 0 15px var(--accent-glow),0 0 30px var(--accent-glow);margin-bottom:0.5rem;letter-spacing:-0.01em;}
[data-theme="ext-photo-pure-earth"] .section-subtitle{font-family:'Lora',sans-serif;font-size:0.9rem;color:var(--text-mid);letter-spacing:0.06em;}
[data-theme="ext-photo-pure-earth"] .about-img-wrapper{border-radius:12px;overflow:hidden;transition:transform 0.6s var(--transition);box-shadow:0 8px 32px rgba(0,0,0,0.08);box-shadow:0 0 15px rgba(126,156,118,0.1);}
[data-theme="ext-photo-pure-earth"] .about-img-wrapper:hover{transform:scale(1.02);box-shadow:0 0 15px rgba(126,156,118,0.1);}
[data-theme="ext-photo-pure-earth"] .about-img-wrapper img{transition:transform 0.8s var(--transition);}
[data-theme="ext-photo-pure-earth"] .about-img-wrapper:hover img{transform:scale(1.05);}
[data-theme="ext-photo-pure-earth"] .skill-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-glow));border-radius:999px;box-shadow:0 0 12px var(--accent-glow);}
[data-theme="ext-photo-pure-earth"] .stat-num{font-family:'Spectral',serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:700;color:var(--accent);line-height:1;}
[data-theme="ext-photo-pure-earth"] .stat-label{font-family:'Lora',sans-serif;font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-mid);}
[data-theme="ext-photo-pure-earth"] .album-item{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-2);transition:var(--transition);box-shadow:0 2px 12px rgba(0,0,0,0.04);box-shadow:0 0 15px rgba(126,156,118,0.1);}
[data-theme="ext-photo-pure-earth"] .album-item:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(0,0,0,0.12),0 0 0 1px var(--accent);border-color:var(--accent);}
[data-theme="ext-photo-pure-earth"] .album-cover{border-radius:0;overflow:hidden;}
[data-theme="ext-photo-pure-earth"] .album-item:hover .album-cover img{transform:scale(1.06);}
[data-theme="ext-photo-pure-earth"] .album-title{font-family:'Spectral',serif;font-size:1.1rem;font-weight:600;color:var(--text);}
[data-theme="ext-photo-pure-earth"] .album-meta{font-family:'Lora',sans-serif;font-size:0.8rem;color:var(--text-mid);}
[data-theme="ext-photo-pure-earth"] .btn.primary{background:var(--accent);color:#fff;font-family:'Lora',sans-serif;border:none;border-radius:999px;padding:0.85rem 2.2rem;font-weight:600;letter-spacing:0.04em;transition:var(--transition);box-shadow:0 4px 20px var(--accent-glow);}
[data-theme="ext-photo-pure-earth"] .btn.primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow);}
[data-theme="ext-photo-pure-earth"] .btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0.85rem 2.2rem;font-family:'Lora',sans-serif;transition:var(--transition);}
[data-theme="ext-photo-pure-earth"] .btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(0,0,0,0.02);}
[data-theme="ext-photo-pure-earth"] .contact-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:2rem;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(126,156,118,0.1);}
[data-theme="ext-photo-pure-earth"] .contact-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-earth"] footer{background:var(--bg-2);border-top:1px solid var(--border);padding:3.5rem 1.5rem 2rem;}
[data-theme="ext-photo-pure-earth"] .footer-logo{font-family:var(--font-display);font-size:1.4rem;color:var(--text);}
[data-theme="ext-photo-pure-earth"] .footer-logo span{color:var(--accent);}
[data-theme="ext-photo-pure-earth"] .footer-links a{color:var(--text-dim);font-family:'Lora',sans-serif;font-size:0.85rem;transition:var(--transition);}
[data-theme="ext-photo-pure-earth"] .footer-links a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-earth"] .article-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
[data-theme="ext-photo-pure-earth"] .article-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-earth"] .progress-bar{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);}
[data-theme="ext-photo-pure-earth"] .stat-item{border-radius:12px;transition:var(--transition);background:var(--bg-2);box-shadow:0 2px 8px rgba(0,0,0,0.03);box-shadow:0 0 15px rgba(126,156,118,0.1);}
[data-theme="ext-photo-pure-earth"] .stat-item:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(0,0,0,0.08);}
[data-theme="ext-photo-pure-earth"] .nav-toggle span{background:var(--text);}
[data-theme="ext-photo-pure-earth"] .mobile-menu{background:var(--bg-2);border-left:1px solid var(--border);}
[data-theme="ext-photo-pure-earth"] .mobile-menu a{color:var(--text-dim);font-family:'Lora',sans-serif;}
[data-theme="ext-photo-pure-earth"] .mobile-menu a:hover{color:var(--accent);}
[data-theme="ext-photo-pure-earth"] .ts-panel{background:var(--bg-2);border:1px solid var(--border);backdrop-filter:blur(20px);}
[data-theme="ext-photo-pure-earth"] .ts-name{color:var(--text);font-family:'Lora',sans-serif;}
[data-theme="ext-photo-pure-earth"] a{color:var(--accent);}
[data-theme="ext-photo-pure-earth"] .eyebrow{color:var(--accent);font-family:'Lora',sans-serif;letter-spacing:0.2em;text-transform:uppercase;font-size:0.75rem;}
[data-theme="ext-photo-pure-earth"] .hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;}

/* === Missing Swatches === */
.ts-swatch.ts-ap-ext-girl-pink{background:linear-gradient(135deg,#1a0814,#ec4899);}
.ts-swatch.ts-ap-ext-girl-dream{background:linear-gradient(135deg,#0e0820,#c084fc);}
.ts-swatch.ts-ap-ext-girl-floral{background:linear-gradient(135deg,#140a14,#f472b6);}
.ts-swatch.ts-ap-ext-girl-bubble{background:linear-gradient(135deg,#0a0e1a,#60a5fa);}
.ts-swatch.ts-ap-ext-girl-pearl{background:linear-gradient(135deg,#0e0e14,#f0e6d2);}
.ts-swatch.ts-ap-ext-boy-tech{background:linear-gradient(135deg,#04060a,#00ff88);}
.ts-swatch.ts-ap-ext-boy-rocket{background:linear-gradient(135deg,#04060e,#f97316);}
.ts-swatch.ts-ap-ext-boy-ocean{background:linear-gradient(135deg,#020a14,#0ea5e9);}
.ts-swatch.ts-ap-ext-boy-jungle{background:linear-gradient(135deg,#040a06,#16a34a);}
.ts-swatch.ts-ap-ext-boy-mech{background:linear-gradient(135deg,#0a0a0e,#60a5fa);}
.ts-swatch.ts-ap-ext-new-aperture{background:linear-gradient(135deg,#080a0c,#22d3ee);}
.ts-swatch.ts-ap-ext-new-darkroom{background:linear-gradient(135deg,#0a0606,#ef4444);}
.ts-swatch.ts-ap-ext-new-contact{background:linear-gradient(135deg,#0c0c0c,#eab308);}
.ts-swatch.ts-ap-ext-new-gallery{background:linear-gradient(135deg,#f5f5f0,#c8553d);}
.ts-swatch.ts-ap-ext-new-vintage{background:linear-gradient(135deg,#1a140a,#d4a544);}
.ts-swatch.ts-ap-ext-new-lensball{background:linear-gradient(135deg,#06080c,#a78bfa);}
.ts-swatch.ts-ap-ext-new-lightpaint{background:linear-gradient(135deg,#020208,#22d3ee);}
.ts-swatch.ts-ap-ext-new-pinhole{background:linear-gradient(135deg,#0c0a08,#ca8a04);}
.ts-swatch.ts-ap-ext-new-fisheye{background:linear-gradient(135deg,#080a0c,#06b6d4);}
.ts-swatch.ts-ap-ext-new-infrared{background:linear-gradient(135deg,#08060a,#e879f9);}


/* === New Theme Swatches === */
.ts-swatch.ts-ap-ext-girl-cherry{background:linear-gradient(135deg,#1a0a12,#ff6b9d);}
.ts-swatch.ts-ap-ext-girl-strawberry{background:linear-gradient(135deg,#1a0808,#ff4466);}
.ts-swatch.ts-ap-ext-girl-cotton{background:linear-gradient(135deg,#0e0a14,#c084fc);}
.ts-swatch.ts-ap-ext-girl-bow{background:linear-gradient(135deg,#140a10,#e91e63);}
.ts-swatch.ts-ap-ext-lady-rose{background:linear-gradient(135deg,#14080c,#c62828);}
.ts-swatch.ts-ap-ext-lady-pearl{background:linear-gradient(135deg,#0e0e0c,#e8dcc0);}
.ts-swatch.ts-ap-ext-lady-velvet{background:linear-gradient(135deg,#100608,#8b1538);}
.ts-swatch.ts-ap-ext-lady-lace{background:linear-gradient(135deg,#0c0c0a,#d4c8a8);}
.ts-swatch.ts-ap-ext-wild-rose{background:linear-gradient(135deg,#120608,#e91e63);}
.ts-swatch.ts-ap-ext-wild-neon{background:linear-gradient(135deg,#08040c,#ff00ff);}
.ts-swatch.ts-ap-ext-wild-leopard{background:linear-gradient(135deg,#0c0804,#d4a020);}
.ts-swatch.ts-ap-ext-wild-stud{background:linear-gradient(135deg,#08080a,#a0a0b0);}
.ts-swatch.ts-ap-ext-pure-snow{background:linear-gradient(135deg,#080a0e,#a0d8ff);}
.ts-swatch.ts-ap-ext-pure-dew{background:linear-gradient(135deg,#080c0a,#6ee7b7);}
.ts-swatch.ts-ap-ext-pure-lily{background:linear-gradient(135deg,#0a0a0c,#e0e0e8);}
.ts-swatch.ts-ap-ext-pure-mint{background:linear-gradient(135deg,#080c0a,#5eead4);}
.ts-swatch.ts-ap-ext-youth-campus{background:linear-gradient(135deg,#080a10,#3b82f6);}
.ts-swatch.ts-ap-ext-youth-star{background:linear-gradient(135deg,#080414,#818cf8);}
.ts-swatch.ts-ap-ext-youth-summer{background:linear-gradient(135deg,#0c0804,#fb923c);}
.ts-swatch.ts-ap-ext-youth-wind{background:linear-gradient(135deg,#080c0c,#2dd4bf);}

/* === Light Theme Swatches === */
.ts-swatch.ts-ap-ext-light-aurora{background:linear-gradient(135deg,#f0f4ff,#5b8def);}
.ts-swatch.ts-ap-ext-light-cloud{background:linear-gradient(135deg,#fafcff,#6cb4ef);}
.ts-swatch.ts-ap-ext-light-petal{background:linear-gradient(135deg,#fff5f8,#e8709a);}
.ts-swatch.ts-ap-ext-light-mint{background:linear-gradient(135deg,#f0faf5,#3bcf8a);}
.ts-swatch.ts-ap-ext-light-pearl{background:linear-gradient(135deg,#fdfaf5,#c8a070);}
.ts-swatch.ts-ap-ext-light-lavender{background:linear-gradient(135deg,#f5f0ff,#8b6fd4);}
.ts-swatch.ts-ap-ext-light-honey{background:linear-gradient(135deg,#fffdf0,#d4a020);}
.ts-swatch.ts-ap-ext-light-coral{background:linear-gradient(135deg,#fff8f5,#ff7855);}
.ts-swatch.ts-ap-ext-light-sky{background:linear-gradient(135deg,#f0f8ff,#3b82f6);}
.ts-swatch.ts-ap-ext-light-sage{background:linear-gradient(135deg,#f5f8f0,#7aad5a);}
.ts-swatch.ts-ap-ext-light-girl-sakura{background:linear-gradient(135deg,#fff0f5,#ff6b9d);}
.ts-swatch.ts-ap-ext-light-girl-peach{background:linear-gradient(135deg,#fff5f0,#ff8855);}
.ts-swatch.ts-ap-ext-light-girl-cotton{background:linear-gradient(135deg,#faf5ff,#c084fc);}
.ts-swatch.ts-ap-ext-light-girl-berry{background:linear-gradient(135deg,#fff8f8,#e8456a);}
.ts-swatch.ts-ap-ext-light-girl-lemon{background:linear-gradient(135deg,#fffef5,#d4c020);}
.ts-swatch.ts-ap-ext-light-girl-icing{background:linear-gradient(135deg,#fef8fa,#f0a0b8);}
.ts-swatch.ts-ap-ext-light-girl-mango{background:linear-gradient(135deg,#fffdf0,#ffa830);}
.ts-swatch.ts-ap-ext-light-girl-bubble{background:linear-gradient(135deg,#f8faff,#60a5fa);}
.ts-swatch.ts-ap-ext-light-lady-rose{background:linear-gradient(135deg,#fdf5f5,#c62828);}
.ts-swatch.ts-ap-ext-light-lady-champagne{background:linear-gradient(135deg,#fdfaf3,#c8a44e);}
.ts-swatch.ts-ap-ext-light-lady-mauve{background:linear-gradient(135deg,#faf5fc,#9c6abf);}
.ts-swatch.ts-ap-ext-light-lady-cream{background:linear-gradient(135deg,#fdfbf5,#b8956a);}
.ts-swatch.ts-ap-ext-light-lady-blush{background:linear-gradient(135deg,#fef8f6,#e08080);}
.ts-swatch.ts-ap-ext-light-lady-silk{background:linear-gradient(135deg,#fafafc,#7070d0);}
.ts-swatch.ts-ap-ext-light-lady-jade{background:linear-gradient(135deg,#f0faf6,#3aad7a);}
.ts-swatch.ts-ap-ext-light-lady-amber{background:linear-gradient(135deg,#fdf8f0,#c08020);}
.ts-swatch.ts-ap-ext-light-pure-snow{background:linear-gradient(135deg,#fafcff,#a0d8ff);}
.ts-swatch.ts-ap-ext-light-pure-lily{background:linear-gradient(135deg,#fefefa,#8ab85a);}
.ts-swatch.ts-ap-ext-light-pure-aqua{background:linear-gradient(135deg,#f0faff,#3bc5e8);}
.ts-swatch.ts-ap-ext-light-pure-breeze{background:linear-gradient(135deg,#f5fdfa,#2dd4bf);}
.ts-swatch.ts-ap-ext-light-pure-ivory{background:linear-gradient(135deg,#fdfbf8,#c8b888);}
.ts-swatch.ts-ap-ext-light-pure-dawn{background:linear-gradient(135deg,#fdf8f5,#e89070);}
.ts-swatch.ts-ap-ext-light-youth-sky{background:linear-gradient(135deg,#f0f8ff,#3b82f6);}
.ts-swatch.ts-ap-ext-light-youth-grass{background:linear-gradient(135deg,#f5faf0,#4caf50);}
.ts-swatch.ts-ap-ext-light-youth-orange{background:linear-gradient(135deg,#fffdf5,#ff9020);}
.ts-swatch.ts-ap-ext-light-yuth-coral{background:linear-gradient(135deg,#fff8f5,#ff5e3a);}
.ts-swatch.ts-ap-ext-light-youth-lake{background:linear-gradient(135deg,#f0fafa,#1ab8b8);}
.ts-swatch.ts-ap-ext-light-youth-sun{background:linear-gradient(135deg,#fffef0,#f5b800);}
.ts-swatch.ts-ap-ext-light-youth-grape{background:linear-gradient(135deg,#faf5ff,#9060d0);}
.ts-swatch.ts-ap-ext-light-youth-rainbow{background:linear-gradient(135deg,#fafcff,#5b8def);}

/* === Photo Theme Swatches === */
.ts-swatch.ts-ap-ext-photo-vibrant-street{background:linear-gradient(135deg,#fffaf5,#ff595e);}
.ts-swatch.ts-ap-ext-photo-vibrant-tropical{background:linear-gradient(135deg,#f5fffa,#20c997);}
.ts-swatch.ts-ap-ext-photo-vibrant-pop{background:linear-gradient(135deg,#fafaff,#ff006e);}
.ts-swatch.ts-ap-ext-photo-vibrant-festival{background:linear-gradient(135deg,#fffdf5,#ff9f1c);}
.ts-swatch.ts-ap-ext-photo-vibrant-candy{background:linear-gradient(135deg,#fffafc,#ffafcc);}
.ts-swatch.ts-ap-ext-photo-vibrant-neon{background:linear-gradient(135deg,#fafaff,#3a86ff);}
.ts-swatch.ts-ap-ext-photo-vibrant-citrus{background:linear-gradient(135deg,#fefffa,#8ac926);}
.ts-swatch.ts-ap-ext-photo-vibrant-bold{background:linear-gradient(135deg,#fafafa,#F97316);}
.ts-swatch.ts-ap-ext-photo-warm-coffee{background:linear-gradient(135deg,#fbf8f5,#7f5a4a);}
.ts-swatch.ts-ap-ext-photo-warm-amber{background:linear-gradient(135deg,#fffaf0,#c49b5a);}
.ts-swatch.ts-ap-ext-photo-warm-autumn{background:linear-gradient(135deg,#fff8f0,#c77953);}
.ts-swatch.ts-ap-ext-photo-warm-firelight{background:linear-gradient(135deg,#fff5f0,#b7605f);}
.ts-swatch.ts-ap-ext-photo-warm-flannel{background:linear-gradient(135deg,#faf8f5,#7a828c);}
.ts-swatch.ts-ap-ext-photo-warm-vanilla{background:linear-gradient(135deg,#fefcf8,#c8a878);}
.ts-swatch.ts-ap-ext-photo-warm-hearth{background:linear-gradient(135deg,#fff8f3,#e27a47);}
.ts-swatch.ts-ap-ext-photo-warm-nordic{background:linear-gradient(135deg,#fafafa,#9ba1a6);}
.ts-swatch.ts-ap-ext-photo-sport-arena{background:linear-gradient(135deg,#f8faff,#0074ff);}
.ts-swatch.ts-ap-ext-photo-sport-champion{background:linear-gradient(135deg,#fafaff,#ffd700);}
.ts-swatch.ts-ap-ext-photo-sport-action{background:linear-gradient(135deg,#fff8f5,#ff5b3c);}
.ts-swatch.ts-ap-ext-photo-sport-floodlight{background:linear-gradient(135deg,#faffff,#1dd3b0);}
.ts-swatch.ts-ap-ext-photo-sport-energy{background:linear-gradient(135deg,#fffaff,#ff6392);}
.ts-swatch.ts-ap-ext-photo-sport-citrus{background:linear-gradient(135deg,#fafff5,#00afb9);}
.ts-swatch.ts-ap-ext-photo-sport-monochrome{background:linear-gradient(135deg,#fafafa,#2e2e2e);}
.ts-swatch.ts-ap-ext-photo-sport-drama{background:linear-gradient(135deg,#f5f5fa,#ff5733);}
.ts-swatch.ts-ap-ext-photo-fashion-aurora{background:linear-gradient(135deg,#fafcff,#A9E1FF);}
.ts-swatch.ts-ap-ext-photo-fashion-sunset{background:linear-gradient(135deg,#fff8f5,#FF6D8B);}
.ts-swatch.ts-ap-ext-photo-fashion-retro{background:linear-gradient(135deg,#faf8f0,#138A7D);}
.ts-swatch.ts-ap-ext-photo-fashion-rosewood{background:linear-gradient(135deg,#fdf8f6,#B2545B);}
.ts-swatch.ts-ap-ext-photo-fashion-galaxy{background:linear-gradient(135deg,#f8f5ff,#A885FF);}
.ts-swatch.ts-ap-ext-photo-fashion-amber{background:linear-gradient(135deg,#fffaf0,#D69A3C);}
.ts-swatch.ts-ap-ext-photo-fashion-dusty{background:linear-gradient(135deg,#fdf8f8,#C19FA2);}
.ts-swatch.ts-ap-ext-photo-fashion-butter{background:linear-gradient(135deg,#fffef0,#F4D06F);}
.ts-swatch.ts-ap-ext-photo-pure-arctic{background:linear-gradient(135deg,#faffff,#7DB4C7);}
.ts-swatch.ts-ap-ext-photo-pure-ocean{background:linear-gradient(135deg,#f0fcff,#009EC2);}
.ts-swatch.ts-ap-ext-photo-pure-mint{background:linear-gradient(135deg,#f5fff8,#6AA495);}
.ts-swatch.ts-ap-ext-photo-pure-lime{background:linear-gradient(135deg,#fafff0,#6FAA00);}
.ts-swatch.ts-ap-ext-photo-pure-clean{background:linear-gradient(135deg,#fafefa,#80D2AB);}
.ts-swatch.ts-ap-ext-photo-pure-cloud{background:linear-gradient(135deg,#fcfcfc,#7C7C7C);}
.ts-swatch.ts-ap-ext-photo-pure-modern{background:linear-gradient(135deg,#fafcff,#45D6E2);}
.ts-swatch.ts-ap-ext-photo-pure-earth{background:linear-gradient(135deg,#fdfaf5,#7E9C76);}
/* === 每字单独配色+同色发光 (80套风格) === */
/* 基础：确保ht-char为inline */
.hero-title .ht-char{display:inline;}

/* ext-light-aurora — 4色循环 */

/* ext-light-cloud — 4色循环 */

/* ext-light-petal — 4色循环 */

/* ext-light-mint — 4色循环 */

/* ext-light-pearl — 4色循环 */

/* ext-light-lavender — 4色循环 */

/* ext-light-honey — 4色循环 */

/* ext-light-coral — 4色循环 */

/* ext-light-sky — 4色循环 */

/* ext-light-sage — 4色循环 */

/* ext-light-girl-sakura — 4色循环 */

/* ext-light-girl-peach — 4色循环 */

/* ext-light-girl-cotton — 4色循环 */

/* ext-light-girl-berry — 4色循环 */

/* ext-light-girl-lemon — 4色循环 */

/* ext-light-girl-icing — 4色循环 */

/* ext-light-girl-mango — 4色循环 */

/* ext-light-girl-bubble — 4色循环 */

/* ext-light-lady-rose — 4色循环 */

/* ext-light-lady-champagne — 4色循环 */

/* ext-light-lady-mauve — 4色循环 */

/* ext-light-lady-cream — 4色循环 */

/* ext-light-lady-blush — 4色循环 */

/* ext-light-lady-silk — 4色循环 */

/* ext-light-lady-jade — 4色循环 */

/* ext-light-lady-amber — 4色循环 */

/* ext-light-pure-snow — 4色循环 */

/* ext-light-pure-lily — 4色循环 */

/* ext-light-pure-aqua — 4色循环 */

/* ext-light-pure-breeze — 4色循环 */

/* ext-light-pure-ivory — 4色循环 */

/* ext-light-pure-dawn — 4色循环 */

/* ext-light-youth-sky — 4色循环 */

/* ext-light-youth-grass — 4色循环 */

/* ext-light-youth-orange — 4色循环 */

/* ext-light-yuth-coral — 4色循环 */

/* ext-light-youth-lake — 4色循环 */

/* ext-light-youth-sun — 4色循环 */

/* ext-light-youth-grape — 4色循环 */

/* ext-light-youth-rainbow — 4色循环 */

/* ext-photo-vibrant-street — 4色循环 */

/* ext-photo-vibrant-tropical — 4色循环 */

/* ext-photo-vibrant-pop — 4色循环 */

/* ext-photo-vibrant-festival — 4色循环 */

/* ext-photo-vibrant-candy — 4色循环 */

/* ext-photo-vibrant-neon — 4色循环 */

/* ext-photo-vibrant-citrus — 4色循环 */

/* ext-photo-vibrant-bold — 4色循环 */

/* ext-photo-warm-coffee — 4色循环 */

/* ext-photo-warm-amber — 4色循环 */

/* ext-photo-warm-autumn — 4色循环 */

/* ext-photo-warm-firelight — 4色循环 */

/* ext-photo-warm-flannel — 4色循环 */

/* ext-photo-warm-vanilla — 4色循环 */

/* ext-photo-warm-hearth — 4色循环 */

/* ext-photo-warm-nordic — 4色循环 */

/* ext-photo-sport-arena — 4色循环 */

/* ext-photo-sport-champion — 4色循环 */

/* ext-photo-sport-action — 4色循环 */

/* ext-photo-sport-floodlight — 4色循环 */

/* ext-photo-sport-energy — 4色循环 */

/* ext-photo-sport-citrus — 4色循环 */

/* ext-photo-sport-monochrome — 4色循环 */

/* ext-photo-sport-drama — 4色循环 */

/* ext-photo-fashion-aurora — 4色循环 */

/* ext-photo-fashion-sunset — 4色循环 */

/* ext-photo-fashion-retro — 4色循环 */

/* ext-photo-fashion-rosewood — 4色循环 */

/* ext-photo-fashion-galaxy — 4色循环 */

/* ext-photo-fashion-amber — 4色循环 */

/* ext-photo-fashion-dusty — 4色循环 */

/* ext-photo-fashion-butter — 4色循环 */

/* ext-photo-pure-arctic — 4色循环 */

/* ext-photo-pure-ocean — 4色循环 */

/* ext-photo-pure-mint — 4色循环 */

/* ext-photo-pure-lime — 4色循环 */

/* ext-photo-pure-clean — 4色循环 */

/* ext-photo-pure-cloud — 4色循环 */

/* ext-photo-pure-modern — 4色循环 */

/* ext-photo-pure-earth — 4色循环 */
/* ============================================================ */
/* 80 UNIQUE HERO DESIGNS - NO REPETITION                       */
/* ============================================================ */

/* --- Theme 1/80: ext-light-aurora --- */
[data-theme="ext-light-aurora"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid #5b8def40;border-radius:999px;color:#5b8def;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.03);backdrop-filter:blur(6px);}
[data-theme="ext-light-aurora"] .scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,transparent,#5b8def30,transparent);position:relative;overflow:hidden;}
[data-theme="ext-light-aurora"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:#5b8def;animation:scroll_ext_light_aurora 2s ease-in-out infinite;}
@keyframes scroll_ext_light_aurora{0%{transform:translateY(-100%)}100%{transform:translateY(250%)}}
[data-theme="ext-light-aurora"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#5b8def30 0%,#5b8def10 50%,transparent 100%);z-index:1;}

/* --- Theme 2/80: ext-light-cloud --- */
[data-theme="ext-light-cloud"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem;border:none;border-bottom:2px solid #a0d8ff;color:#a0d8ff;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-light-cloud"] .scroll-line{width:12px;height:12px;border-right:2px solid #a0d8ff;border-bottom:2px solid #a0d8ff;transform:rotate(45deg);animation:scroll_ext_light_cloud 1.5s ease infinite;}
@keyframes scroll_ext_light_cloud{0%,100%{transform:rotate(45deg) translate(0,0)}50%{transform:rotate(45deg) translate(4px,4px)}}
[data-theme="ext-light-cloud"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,#a0d8ff30 100%);z-index:1;}

/* --- Theme 3/80: ext-light-petal --- */
[data-theme="ext-light-petal"] .hero-tag{display:inline-block;padding:0.5rem 1.2rem;border-top:1px solid #d0406860;border-bottom:1px solid #d0406860;border-left:none;border-right:none;border-radius:0;color:#d04068;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;}
[data-theme="ext-light-petal"] .scroll-line{width:10px;height:10px;border-radius:50%;background:#d04068;animation:scroll_ext_light_petal 2s ease infinite;}
@keyframes scroll_ext_light_petal{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.8);opacity:0.3}}
[data-theme="ext-light-petal"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#d0406830 0%,transparent 50%,#ff8fb020 100%);z-index:1;}

/* --- Theme 4/80: ext-light-mint --- */
[data-theme="ext-light-mint"] .hero-tag{display:inline-block;padding:0.3rem 1rem;border:none;color:#6ee7b7;font-size:0.78rem;letter-spacing:0.15em;text-transform:uppercase;}
[data-theme="ext-light-mint"] .hero-tag::before{content:"[";margin-right:0.5rem;font-weight:300;opacity:0.5;}
[data-theme="ext-light-mint"] .hero-tag::after{content:"]";margin-left:0.5rem;font-weight:300;opacity:0.5;}
[data-theme="ext-light-mint"] .scroll-line{width:3px;height:40px;background:#6ee7b720;position:relative;border-radius:2px;}
[data-theme="ext-light-mint"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:#6ee7b7;border-radius:2px;animation:scroll_ext_light_mint 2s ease infinite;}
@keyframes scroll_ext_light_mint{0%{height:0;opacity:1}50%{height:100%;opacity:0.5}100%{height:0;opacity:0;transform:translateY(100%)}}
[data-theme="ext-light-mint"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 80%,#6ee7b725 0%,transparent 70%);z-index:1;}

/* --- Theme 5/80: ext-light-pearl --- */
[data-theme="ext-light-pearl"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#c8a070;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-light-pearl"] .hero-tag::before,[data-theme="ext-light-pearl"] .hero-tag::after{content:"";width:30px;height:1px;background:#c8a070;display:inline-block;}
[data-theme="ext-light-pearl"] .scroll-line{width:4px;height:4px;border-radius:50%;background:#c8a070;animation:scroll_ext_light_pearl 1.5s ease infinite;box-shadow:0 -10px 0 #c8a070,0 10px 0 #c8a070;}
@keyframes scroll_ext_light_pearl{0%,100%{opacity:0.3}50%{opacity:1}}
[data-theme="ext-light-pearl"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,#c8a07040,transparent 60%);z-index:1;}

/* --- Theme 6/80: ext-light-lavender --- */
[data-theme="ext-light-lavender"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#a78bfa;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-lavender"] .hero-tag::before{content:"CF";font-size:0.5rem;}
[data-theme="ext-light-lavender"] .scroll-line{width:14px;height:14px;border:2px solid #a78bfa;animation:scroll_ext_light_lavender 2s linear infinite;}
@keyframes scroll_ext_light_lavender{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-light-lavender"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#a78bfa20 0%,transparent 30%,transparent 70%,#7c3aed20 100%);z-index:1;}

/* --- Theme 7/80: ext-light-honey --- */
[data-theme="ext-light-honey"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0.8rem;border:none;color:#b8881a;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;}
[data-theme="ext-light-honey"] .hero-tag::before,[data-theme="ext-light-honey"] .hero-tag::after{content:"C6";font-size:0.5rem;}
[data-theme="ext-light-honey"] .scroll-line{width:22px;height:34px;border:2px solid #b8881a60;border-radius:12px;position:relative;}
[data-theme="ext-light-honey"] .scroll-line::after{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:3px;height:6px;border-radius:50%;background:#b8881a;animation:scroll_ext_light_honey 1.8s ease infinite;}
@keyframes scroll_ext_light_honey{0%{transform:translateX(-50%) translateY(0);opacity:1}100%{transform:translateX(-50%) translateY(12px);opacity:0}}
[data-theme="ext-light-honey"] .hero::before{content:"";position:absolute;inset:0;background:conic-gradient(from 180deg at 50% 50%,#b8881a15,#e8c86015,#b8881a15);z-index:1;}

/* --- Theme 8/80: ext-light-coral --- */
[data-theme="ext-light-coral"] .hero-tag{display:inline-block;padding:0.3rem 0;border:none;color:#ffa890;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-coral"] .hero-tag::before{content:"//";margin-right:0.6rem;opacity:0.4;font-weight:700;}
[data-theme="ext-light-coral"] .scroll-line{width:20px;height:30px;display:flex;gap:3px;align-items:flex-end;justify-content:center;}
[data-theme="ext-light-coral"] .scroll-line::before,[data-theme="ext-light-coral"] .scroll-line::after{content:"";width:3px;background:#ffa890;animation:scroll_ext_light_coral 1.2s ease infinite;}
[data-theme="ext-light-coral"] .scroll-line::before{animation-delay:0s;}
[data-theme="ext-light-coral"] .scroll-line::after{animation-delay:0.3s;}
@keyframes scroll_ext_light_coral{0%,100%{height:8px}50%{height:28px}}
[data-theme="ext-light-coral"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,#ffa89020 0%,transparent 50%),radial-gradient(circle at 70% 50%,#ff785520 0%,transparent 50%);z-index:1;}

/* --- Theme 9/80: ext-light-sky --- */
[data-theme="ext-light-sky"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#3b82f6;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-light-sky"] .hero-tag::before{content:"";width:3px;height:14px;background:#3b82f6;display:inline-block;border-radius:2px;}
[data-theme="ext-light-sky"] .scroll-line{width:2px;height:40px;background:#3b82f620;position:relative;}
[data-theme="ext-light-sky"] .scroll-line::after{content:"";position:absolute;top:0;left:-2px;width:6px;height:6px;border-radius:50%;background:#3b82f6;animation:scroll_ext_light_sky 2s ease-in infinite;}
@keyframes scroll_ext_light_sky{0%{transform:translateY(0);opacity:1}80%,100%{transform:translateY(40px);opacity:0}}
[data-theme="ext-light-sky"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,#3b82f615 40%,#3b82f630 100%);z-index:1;}

/* --- Theme 10/80: ext-light-sage --- */
[data-theme="ext-light-sage"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:none;border-radius:4px;color:#fff;background:#9caf88;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;font-weight:600;}
[data-theme="ext-light-sage"] .scroll-line{width:1px;height:40px;background:#9caf8820;position:relative;}
[data-theme="ext-light-sage"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#9caf88;transform-origin:top;animation:scroll_ext_light_sage 2s ease infinite;}
@keyframes scroll_ext_light_sage{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
[data-theme="ext-light-sage"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,#9caf8815 0%,transparent 60%);z-index:1;}

/* --- Theme 11/80: ext-light-girl-sakura --- */
[data-theme="ext-light-girl-sakura"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px dashed #e8457a80;border-radius:6px;color:#e8457a;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-girl-sakura"] .scroll-line{width:2px;height:40px;background:#e8457a;transform-origin:top;animation:scroll_ext_light_girl_sakura 2s ease-in-out infinite;}
[data-theme="ext-light-girl-sakura"] .scroll-line::after{content:"";position:absolute;bottom:-4px;left:-3px;width:8px;height:8px;border-radius:50%;background:#e8457a;}
@keyframes scroll_ext_light_girl_sakura{0%,100%{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}
[data-theme="ext-light-girl-sakura"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(200deg,#e8457a30,transparent 40%,#ff8fb820);z-index:1;}

/* --- Theme 12/80: ext-light-girl-peach --- */
[data-theme="ext-light-girl-peach"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:2px dotted #ffbb99;border-radius:0;color:#ffbb99;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;}
[data-theme="ext-light-girl-peach"] .scroll-line{width:30px;height:2px;background:#ffbb99;animation:scroll_ext_light_girl_peach 2s ease infinite;}
@keyframes scroll_ext_light_girl_peach{0%,100%{transform:scaleX(0.3)}50%{transform:scaleX(1)}}
[data-theme="ext-light-girl-peach"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,#ffbb9930 0%,transparent 60%);z-index:1;}

/* --- Theme 13/80: ext-light-girl-cotton --- */
[data-theme="ext-light-girl-cotton"] .hero-tag{display:inline-block;padding:0.5rem 1rem 0.3rem;border:none;border-top:2px solid #c084fc;color:#c084fc;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-light-girl-cotton"] .scroll-line{width:40px;height:3px;background:#c084fc20;border-radius:2px;position:relative;overflow:hidden;}
[data-theme="ext-light-girl-cotton"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:40%;height:100%;background:#c084fc;border-radius:2px;animation:scroll_ext_light_girl_cotton 1.5s ease infinite;}
@keyframes scroll_ext_light_girl_cotton{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}
[data-theme="ext-light-girl-cotton"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,#c084fc20,transparent 60%),linear-gradient(-45deg,#d8b0fe20,transparent 60%);z-index:1;}

/* --- Theme 14/80: ext-light-girl-berry --- */
[data-theme="ext-light-girl-berry"] .hero-tag{display:inline-block;padding:0.3rem 0.8rem 0.3rem 1rem;border:none;border-left:4px solid #f06890;color:#f06890;font-size:0.78rem;letter-spacing:0.15em;text-transform:uppercase;}
[data-theme="ext-light-girl-berry"] .scroll-line{width:2px;height:20px;background:#f06890;animation:scroll_ext_light_girl_berry 1s step-end infinite;}
@keyframes scroll_ext_light_girl_berry{0%,100%{opacity:1}50%{opacity:0}}
[data-theme="ext-light-girl-berry"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#f0689025 0%,#c1121f15 40%,transparent 80%);z-index:1;}

/* --- Theme 15/80: ext-light-girl-lemon --- */
[data-theme="ext-light-girl-lemon"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:none;border-radius:8px;color:#b8a010;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:#b8a01010;box-shadow:0 0 20px #b8a01030;}
[data-theme="ext-light-girl-lemon"] .scroll-line{width:20px;height:20px;border:2px solid #b8a01020;border-top-color:#b8a010;border-radius:50%;animation:scroll_ext_light_girl_lemon 1.5s linear infinite;}
@keyframes scroll_ext_light_girl_lemon{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-light-girl-lemon"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,#b8a01020 0%,transparent 40%),radial-gradient(circle at 80% 20%,#e8d83020 0%,transparent 40%);z-index:1;}

/* --- Theme 16/80: ext-light-girl-icing --- */
[data-theme="ext-light-girl-icing"] .hero-tag{display:inline-block;padding:0.3rem 0;border:none;color:#fdd0e0;font-size:0.72rem;letter-spacing:0.35em;text-transform:uppercase;font-weight:500;}
[data-theme="ext-light-girl-icing"] .scroll-line{width:10px;height:10px;border-right:2px solid #fdd0e0;border-bottom:2px solid #fdd0e0;transform:rotate(45deg);animation:scroll_ext_light_girl_icing 1.5s ease infinite;box-shadow:8px 8px 0 -7px #fdd0e0;}
@keyframes scroll_ext_light_girl_icing{0%,100%{transform:rotate(45deg) translate(0,0);opacity:1}50%{transform:rotate(45deg) translate(3px,3px);opacity:0.5}}
[data-theme="ext-light-girl-icing"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,transparent 30%,#fdd0e030 100%);z-index:1;}

/* --- Theme 17/80: ext-light-girl-mango --- */
[data-theme="ext-light-girl-mango"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#ffa830;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-girl-mango"] .hero-tag::before{content:"92";font-size:0.85rem;}
[data-theme="ext-light-girl-mango"] .scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,#ffa830,#ffa83020);position:relative;}
[data-theme="ext-light-girl-mango"] .scroll-line::after{content:"";position:absolute;top:0;left:-3px;width:7px;height:7px;border-radius:50%;background:#ffa830;box-shadow:0 0 8px #ffa830;animation:scroll_ext_light_girl_mango 2s ease infinite;}
@keyframes scroll_ext_light_girl_mango{0%{top:0;opacity:1}100%{top:40px;opacity:0}}
[data-theme="ext-light-girl-mango"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 50%,#ffa83010 0%,#ffa83025 80%,#ffa83040 100%);z-index:1;}

/* --- Theme 18/80: ext-light-girl-bubble --- */
[data-theme="ext-light-girl-bubble"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#c084fc;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-girl-bubble"] .hero-tag::before{content:"°5";font-size:0.7rem;}
[data-theme="ext-light-girl-bubble"] .scroll-line{width:8px;height:8px;border-radius:50%;background:#c084fc;position:relative;animation:scroll_ext_light_girl_bubble 2s ease infinite;}
[data-theme="ext-light-girl-bubble"] .scroll-line::after{content:"";position:absolute;top:-4px;left:-4px;width:16px;height:16px;border:1px solid #c084fc;border-radius:50%;animation:scroll_ext_light_girl_bubble 2s ease infinite;animation-delay:0.5s;}
@keyframes scroll_ext_light_girl_bubble{0%{transform:scale(1);opacity:1}100%{transform:scale(2);opacity:0}}
[data-theme="ext-light-girl-bubble"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#c084fc35 0%,#c084fc10 50%,transparent 100%);z-index:1;}

/* --- Theme 19/80: ext-light-lady-rose --- */
[data-theme="ext-light-lady-rose"] .hero-tag{display:inline-block;padding:0.4rem 1.4rem;border:none;color:#a01e1e;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:#a01e1e10;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);}
[data-theme="ext-light-lady-rose"] .scroll-line{width:1px;height:30px;background:#a01e1e;position:relative;animation:scroll_ext_light_lady_rose 2s ease infinite;transform-origin:top;}
[data-theme="ext-light-lady-rose"] .scroll-line::after{content:"";position:absolute;bottom:-1px;left:-3px;width:7px;height:7px;border-right:1px solid #a01e1e;border-bottom:1px solid #a01e1e;transform:rotate(45deg);}
@keyframes scroll_ext_light_lady_rose{0%{transform:scaleY(0)}100%{transform:scaleY(1)}}
[data-theme="ext-light-lady-rose"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 20%,#a01e1e15 60%,#a01e1e35 100%);z-index:1;}

/* --- Theme 20/80: ext-light-lady-champagne --- */
[data-theme="ext-light-lady-champagne"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem 0.5rem;border:none;border-bottom:3px double #d4b870;color:#d4b870;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-light-lady-champagne"] .scroll-line{width:6px;height:6px;border-radius:50%;background:#d4b870;animation:scroll_ext_light_lady_champagne 1.5s ease infinite;}
@keyframes scroll_ext_light_lady_champagne{0%,100%{transform:scale(0.5);opacity:0.5}50%{transform:scale(1.5);opacity:1}}
[data-theme="ext-light-lady-champagne"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(225deg,#d4b87025,transparent 50%,#c8a44e25);z-index:1;}

/* --- Theme 21/80: ext-light-lady-mauve --- */
[data-theme="ext-light-lady-mauve"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:none;border-radius:0;color:#9c6abf;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;background:#9c6abf15;font-weight:600;}
[data-theme="ext-light-lady-mauve"] .scroll-line{width:2px;height:40px;background:#9c6abf;animation:scroll_ext_light_lady_mauve 2s ease infinite;transform-origin:center;}
@keyframes scroll_ext_light_lady_mauve{0%,100%{transform:scaleY(0.3);opacity:0.5}50%{transform:scaleY(1);opacity:1}}
[data-theme="ext-light-lady-mauve"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(315deg,#9c6abf30 0%,transparent 50%);z-index:1;}

/* --- Theme 22/80: ext-light-lady-cream --- */
[data-theme="ext-light-lady-cream"] .hero-tag{display:inline-block;padding:0.4rem 1rem;border-top:1px solid #d8c0a0;border-bottom:1px solid #d8c0a0;border-left:3px solid #d8c0a0;border-right:none;color:#d8c0a0;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;}
[data-theme="ext-light-lady-cream"] .scroll-line{width:16px;height:16px;border-radius:50%;border:1px solid #d8c0a040;position:relative;overflow:hidden;}
[data-theme="ext-light-lady-cream"] .scroll-line::after{content:"";position:absolute;bottom:0;left:0;width:100%;background:#d8c0a0;animation:scroll_ext_light_lady_cream 2s ease infinite;}
@keyframes scroll_ext_light_lady_cream{0%{height:0}100%{height:100%}}
[data-theme="ext-light-lady-cream"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top,#d8c0a020 0%,transparent 50%);z-index:1;}

/* --- Theme 23/80: ext-light-lady-blush --- */
[data-theme="ext-light-lady-blush"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:none;border-radius:999px;color:#c06060;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;text-shadow:0 0 15px #c0606080;}
[data-theme="ext-light-lady-blush"] .scroll-line{width:3px;height:16px;background:#c06060;border-radius:2px;animation:scroll_ext_light_lady_blush 1s ease infinite;}
@keyframes scroll_ext_light_lady_blush{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
[data-theme="ext-light-lady-blush"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#c0606010 0%,#c0606020 30%,#c0606040 100%);z-index:1;}

/* --- Theme 24/80: ext-light-lady-silk --- */
[data-theme="ext-light-lady-silk"] .hero-tag{display:inline-flex;align-items:center;gap:0.8rem;padding:0.3rem 0;border:none;color:#8080d8;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-lady-silk"] .hero-tag::before{content:"";width:1px;height:20px;background:linear-gradient(to bottom,transparent,#8080d8,transparent);display:inline-block;}
[data-theme="ext-light-lady-silk"] .scroll-line{width:10px;height:10px;background:#8080d8;transform:rotate(45deg);animation:scroll_ext_light_lady_silk 2s linear infinite;}
@keyframes scroll_ext_light_lady_silk{0%{transform:rotate(45deg)}100%{transform:rotate(405deg)}}
[data-theme="ext-light-lady-silk"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 25%,#8080d820 0%,transparent 40%),radial-gradient(circle at 75% 75%,#7070d020 0%,transparent 40%);z-index:1;}

/* --- Theme 25/80: ext-light-lady-jade --- */
[data-theme="ext-light-lady-jade"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#3aad7a;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-lady-jade"] .hero-tag::before{content:"C6";font-size:0.55rem;transform:rotate(45deg);display:inline-block;}
[data-theme="ext-light-lady-jade"] .scroll-line{width:14px;height:14px;position:relative;animation:scroll_ext_light_lady_jade 3s linear infinite;}
[data-theme="ext-light-lady-jade"] .scroll-line::before,[data-theme="ext-light-lady-jade"] .scroll-line::after{content:"";position:absolute;background:#3aad7a;}
[data-theme="ext-light-lady-jade"] .scroll-line::before{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%);}
[data-theme="ext-light-lady-jade"] .scroll-line::after{width:2px;height:100%;left:50%;top:0;transform:translateX(-50%);}
@keyframes scroll_ext_light_lady_jade{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-light-lady-jade"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3aad7a20 0%,#5cc89a15 50%,#3aad7a20 100%);z-index:1;}

/* --- Theme 26/80: ext-light-lady-amber --- */
[data-theme="ext-light-lady-amber"] .hero-tag{display:inline-flex;align-items:center;gap:0.8rem;padding:0.3rem 0;border:none;color:#e0a040;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-lady-amber"] .hero-tag::before,[data-theme="ext-light-lady-amber"] .hero-tag::after{content:"";width:20px;height:1px;background:#e0a040;display:inline-block;}
[data-theme="ext-light-lady-amber"] .scroll-line{width:4px;height:4px;border-radius:50%;background:#e0a040;position:relative;animation:scroll_ext_light_lady_amber 1.5s ease infinite;}
[data-theme="ext-light-lady-amber"] .scroll-line::before{content:"";position:absolute;top:-8px;left:0;width:4px;height:4px;border-radius:50%;background:#e0a040;opacity:0.5;}
[data-theme="ext-light-lady-amber"] .scroll-line::after{content:"";position:absolute;top:-16px;left:0;width:4px;height:4px;border-radius:50%;background:#e0a040;opacity:0.2;}
@keyframes scroll_ext_light_lady_amber{0%{transform:translateY(-16px)}100%{transform:translateY(0)}}
[data-theme="ext-light-lady-amber"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 100% 50% at 50% 100%,#e0a04035 0%,transparent 70%);z-index:1;}

/* --- Theme 27/80: ext-light-pure-snow --- */
[data-theme="ext-light-pure-snow"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid #3b82f6;border-radius:4px;color:#3b82f6;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;outline:1px solid #3b82f640;outline-offset:3px;}
[data-theme="ext-light-pure-snow"] .scroll-line{width:6px;height:6px;border-radius:50%;background:#3b82f6;position:relative;}
[data-theme="ext-light-pure-snow"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;border:1px solid #3b82f6;animation:scroll_ext_light_pure_snow 2s ease-out infinite;}
@keyframes scroll_ext_light_pure_snow{0%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-50%) scale(4);opacity:0}}
[data-theme="ext-light-pure-snow"] .hero::before{content:"";position:absolute;inset:0;background:conic-gradient(from 0deg at 50% 100%,transparent 0deg,#3b82f620 90deg,#80c0f020 180deg,#3b82f620 270deg,transparent 360deg);z-index:1;}

/* --- Theme 28/80: ext-light-pure-lily --- */
[data-theme="ext-light-pure-lily"] .hero-tag{display:inline-block;padding:0.3rem 0;border:none;color:#7ab048;font-size:0.78rem;letter-spacing:0.15em;text-transform:uppercase;}
[data-theme="ext-light-pure-lily"] .hero-tag::before{content:"{";margin-right:0.5rem;opacity:0.4;}
[data-theme="ext-light-pure-lily"] .hero-tag::after{content:"}";margin-left:0.5rem;opacity:0.4;}
[data-theme="ext-light-pure-lily"] .scroll-line{width:20px;height:20px;position:relative;}
[data-theme="ext-light-pure-lily"] .scroll-line::before,[data-theme="ext-light-pure-lily"] .scroll-line::after{content:"";position:absolute;width:100%;height:1px;background:#7ab048;top:50%;left:0;}
[data-theme="ext-light-pure-lily"] .scroll-line::after{animation:scroll_ext_light_pure_lily 2s ease infinite;}
@keyframes scroll_ext_light_pure_lily{0%{transform:rotate(0deg)}100%{transform:rotate(90deg)}}
[data-theme="ext-light-pure-lily"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,#7ab04815 30%,#7ab04830 60%,#7ab04845 100%);z-index:1;}

/* --- Theme 29/80: ext-light-pure-aqua --- */
[data-theme="ext-light-pure-aqua"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem;border:none;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,transparent,#3bc5e8,transparent) 1;color:#3bc5e8;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-light-pure-aqua"] .scroll-line{width:0;height:0;animation:scroll_ext_light_pure_aqua 2s linear infinite;}
[data-theme="ext-light-pure-aqua"] .scroll-line::before{content:"°5";font-size:1rem;color:#3bc5e8;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
@keyframes scroll_ext_light_pure_aqua{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-light-pure-aqua"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,#3bc5e815 0%,#3bc5e830 50%,#3bc5e845 100%);z-index:1;}

/* --- Theme 30/80: ext-light-pure-breeze --- */
[data-theme="ext-light-pure-breeze"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:1px solid #5eead460;border-radius:12px 12px 0 0;color:#5eead4;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-pure-breeze"] .scroll-line{width:16px;height:16px;border:1px solid #5eead430;border-radius:50%;position:relative;}
[data-theme="ext-light-pure-breeze"] .scroll-line::after{content:"";position:absolute;top:-2px;left:50%;width:4px;height:4px;border-radius:50%;background:#5eead4;margin-left:-2px;animation:scroll_ext_light_pure_breeze 2s linear infinite;transform-origin:2px 10px;}
@keyframes scroll_ext_light_pure_breeze{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-light-pure-breeze"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#5eead425 0%,transparent 40%,transparent 60%,#14b8a625 100%);z-index:1;}

/* --- Theme 31/80: ext-light-pure-ivory --- */
[data-theme="ext-light-pure-ivory"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:1px solid #b0a07060;border-radius:0 0 12px 12px;color:#b0a070;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-pure-ivory"] .scroll-line{width:auto;height:auto;font-size:0.6rem;letter-spacing:0.3em;color:#b0a070;text-transform:uppercase;animation:scroll_ext_light_pure_ivory 2s ease infinite;}
@keyframes scroll_ext_light_pure_ivory{0%,100%{opacity:0.3;letter-spacing:0.2em}50%{opacity:1;letter-spacing:0.4em}}
[data-theme="ext-light-pure-ivory"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 30%,#b0a07020 0%,transparent 40%);z-index:1;}

/* --- Theme 32/80: ext-light-pure-dawn --- */
[data-theme="ext-light-pure-dawn"] .hero-tag{display:inline-block;padding:0.3rem 0.8rem 0.4rem 1rem;border:none;border-left:2px solid #e8a080;border-bottom:1px solid #e8a08060;color:#e8a080;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;}
[data-theme="ext-light-pure-dawn"] .scroll-line{width:1px;height:40px;background:#e8a08015;position:relative;overflow:hidden;}
[data-theme="ext-light-pure-dawn"] .scroll-line::after{content:"";position:absolute;top:0;left:-2px;width:5px;height:20px;background:linear-gradient(to bottom,transparent,#e8a080,transparent);filter:blur(2px);animation:scroll_ext_light_pure_dawn 2s linear infinite;}
@keyframes scroll_ext_light_pure_dawn{0%{transform:translateY(-20px)}100%{transform:translateY(40px)}}
[data-theme="ext-light-pure-dawn"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#e8a08040 0%,#e8907020 50%,transparent 100%);z-index:1;}

/* --- Theme 33/80: ext-light-youth-sky --- */
[data-theme="ext-light-youth-sky"] .hero-tag{display:inline-block;padding:0.4rem 1rem 0.3rem 0.8rem;border:none;border-right:2px solid #3b82f6;border-top:1px solid #3b82f660;color:#3b82f6;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;}
[data-theme="ext-light-youth-sky"] .scroll-line{width:24px;height:24px;display:flex;gap:2px;align-items:flex-end;justify-content:center;}
[data-theme="ext-light-youth-sky"] .scroll-line::before,[data-theme="ext-light-youth-sky"] .scroll-line::after{content:"";width:3px;background:#3b82f6;}
[data-theme="ext-light-youth-sky"] .scroll-line::before{animation:scroll_ext_light_youth_sky 1s ease infinite;animation-delay:0s;}
[data-theme="ext-light-youth-sky"] .scroll-line::after{animation:scroll_ext_light_youth_sky 1s ease infinite;animation-delay:0.2s;}
@keyframes scroll_ext_light_youth_sky{0%,100%{height:4px}50%{height:20px}}
[data-theme="ext-light-youth-sky"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,#3b82f625 0%,transparent 50%);z-index:1;}

/* --- Theme 34/80: ext-light-youth-grass --- */
[data-theme="ext-light-youth-grass"] .hero-tag{display:inline-block;padding:0.2rem 0;border:none;color:#66bb6a;font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;font-weight:400;}
[data-theme="ext-light-youth-grass"] .scroll-line{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #66bb6a;animation:scroll_ext_light_youth_grass 1.5s ease infinite;}
@keyframes scroll_ext_light_youth_grass{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(6px);opacity:0.5}}
[data-theme="ext-light-youth-grass"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(240deg,#66bb6a30 0%,#388e3c15 50%,transparent 100%);z-index:1;}

/* --- Theme 35/80: ext-light-youth-orange --- */
[data-theme="ext-light-youth-orange"] .hero-tag{display:inline-block;padding:0.5rem 1.3rem;border:1px solid #e87810;border-radius:0;color:#e87810;font-size:0.85rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:700;}
[data-theme="ext-light-youth-orange"] .scroll-line{width:14px;height:14px;border:1px solid #e8781040;border-radius:50%;position:relative;}
[data-theme="ext-light-youth-orange"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;border-radius:50%;background:#e87810;animation:scroll_ext_light_youth_orange 1.5s ease infinite;}
@keyframes scroll_ext_light_youth_orange{0%,100%{opacity:0.3;transform:translate(-50%,-50%) scale(0.5)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.5)}}
[data-theme="ext-light-youth-orange"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 0% 50%,#e8781020 0%,transparent 50%),radial-gradient(circle at 100% 50%,#ffa04020 0%,transparent 50%);z-index:1;}

/* --- Theme 36/80: ext-light-yuth-coral --- */
[data-theme="ext-light-yuth-coral"] .hero-tag{display:inline-block;padding:0.3rem 0;border:none;color:#ff6e4a;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-yuth-coral"] .hero-tag::before{content:"#";margin-right:0.5rem;opacity:0.5;font-weight:700;}
[data-theme="ext-light-yuth-coral"] .scroll-line{width:20px;height:2px;background:repeating-linear-gradient(90deg,#ff6e4a 0,#ff6e4a 4px,transparent 4px,transparent 8px);animation:scroll_ext_light_yuth_coral 2s linear infinite;}
@keyframes scroll_ext_light_yuth_coral{0%{background-position:0 0}100%{background-position:20px 0}}
[data-theme="ext-light-yuth-coral"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ff6e4a20 0%,transparent 40%,#ff6e4a20 100%);z-index:1;}

/* --- Theme 37/80: ext-light-youth-lake --- */
[data-theme="ext-light-youth-lake"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#1ab8b8;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-youth-lake"] .hero-tag::before{content:"C0";font-size:0.5rem;opacity:0.5;}
[data-theme="ext-light-youth-lake"] .hero-tag::after{content:"B6";font-size:0.5rem;opacity:0.5;}
[data-theme="ext-light-youth-lake"] .scroll-line{width:5px;height:5px;border-radius:50%;background:#1ab8b8;animation:scroll_ext_light_youth_lake 2s ease-in infinite;}
@keyframes scroll_ext_light_youth_lake{0%{transform:translateY(-15px);opacity:0}30%{transform:translateY(0);opacity:1}45%{transform:translateY(-5px)}60%{transform:translateY(0)}100%{transform:translateY(20px);opacity:0}}
[data-theme="ext-light-youth-lake"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 100% at 50% 50%,#1ab8b815 0%,#1ab8b830 70%,#1ab8b845 100%);z-index:1;}

/* --- Theme 38/80: ext-light-youth-sun --- */
[data-theme="ext-light-youth-sun"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#ffd040;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-light-youth-sun"] .hero-tag::before{content:"º6";font-size:0.7rem;}
[data-theme="ext-light-youth-sun"] .scroll-line{width:16px;height:16px;border:1px solid #ffd04020;border-radius:50%;position:relative;animation:scroll_ext_light_youth_sun 3s linear infinite;}
[data-theme="ext-light-youth-sun"] .scroll-line::after{content:"";position:absolute;top:-3px;left:50%;width:5px;height:5px;border-radius:50%;background:#ffd040;margin-left:-2.5px;}
@keyframes scroll_ext_light_youth_sun{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-light-youth-sun"] .hero::before{content:"";position:absolute;inset:0;background:conic-gradient(from 90deg at 50% 50%,#ffd04015 0deg,transparent 90deg,#e0a00015 180deg,transparent 270deg,#ffd04015 360deg);z-index:1;}

/* --- Theme 39/80: ext-light-youth-grape --- */
[data-theme="ext-light-youth-grape"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:none;border-bottom:2px solid #7040c0;border-radius:0;color:#7040c0;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:rgba(255,255,255,0.04);backdrop-filter:blur(8px);}
[data-theme="ext-light-youth-grape"] .scroll-line{width:10px;height:10px;background:#7040c0;animation:scroll_ext_light_youth_grape 1.5s ease infinite;}
@keyframes scroll_ext_light_youth_grape{0%,100%{transform:rotateY(0deg)}50%{transform:rotateY(180deg)}}
[data-theme="ext-light-youth-grape"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,transparent 20%,#7040c025 60%,#7040c040 100%);z-index:1;}

/* --- Theme 40/80: ext-light-youth-rainbow --- */
[data-theme="ext-light-youth-rainbow"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:none;border-radius:8px;color:#4d9de0;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;box-shadow:inset 0 0 0 1px #4d9de060;}
[data-theme="ext-light-youth-rainbow"] .scroll-line{width:1px;height:30px;background:linear-gradient(to bottom,#4d9de0,transparent);animation:scroll_ext_light_youth_rainbow 2s ease infinite;}
@keyframes scroll_ext_light_youth_rainbow{0%,100%{opacity:0.3}50%{opacity:1}}
[data-theme="ext-light-youth-rainbow"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 70%,transparent 0%,#4d9de020 50%,#4d9de040 100%);z-index:1;}

/* --- Theme 41/80: ext-photo-vibrant-street --- */
[data-theme="ext-photo-vibrant-street"] .hero-tag{display:inline-block;padding:0.4rem 1.1rem;border:1px solid #ff595e;border-radius:4px;color:#ff595e;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;box-shadow:0 0 0 3px #ff595e15;}
[data-theme="ext-photo-vibrant-street"] .scroll-line{width:14px;height:14px;border:1px solid #ff595e30;border-radius:50%;position:relative;animation:scroll_ext_photo_vibrant_street 2s ease infinite;}
[data-theme="ext-photo-vibrant-street"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:#ff595e;}
@keyframes scroll_ext_photo_vibrant_street{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}
[data-theme="ext-photo-vibrant-street"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(300deg,#ff595e30 0%,transparent 60%);z-index:1;}

/* --- Theme 42/80: ext-photo-vibrant-tropical --- */
[data-theme="ext-photo-vibrant-tropical"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem 0.6rem;border:none;color:#ffbe0b;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-vibrant-tropical"] .hero-tag::after{content:"";position:absolute;bottom:0;left:15%;width:70%;height:2px;background:#ffbe0b;}
[data-theme="ext-photo-vibrant-tropical"] .scroll-line{width:30px;height:2px;background:#ffbe0b;animation:scroll_ext_photo_vibrant_tropical 1.5s ease infinite;}
@keyframes scroll_ext_photo_vibrant_tropical{0%,100%{transform:scaleX(0.3);opacity:0.3}50%{transform:scaleX(1);opacity:1}}
[data-theme="ext-photo-vibrant-tropical"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at bottom left,#ffbe0b25 0%,transparent 50%);z-index:1;}

/* --- Theme 43/80: ext-photo-vibrant-pop --- */
[data-theme="ext-photo-vibrant-pop"] .hero-tag{display:inline-block;padding:0.6rem 0.2rem 0.3rem;border:none;color:#ffbe0b;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-vibrant-pop"] .hero-tag::before{content:"";position:absolute;top:0;left:20%;width:60%;height:1px;background:#ffbe0b;}
[data-theme="ext-photo-vibrant-pop"] .scroll-line{width:6px;height:6px;border-radius:50%;background:#ffbe0b;animation:scroll_ext_photo_vibrant_pop 2s ease infinite;}
@keyframes scroll_ext_photo_vibrant_pop{0%,100%{background:#ffbe0b;transform:scale(1)}33%{background:#3a86ff;transform:scale(1.3)}66%{transform:scale(0.7)}}
[data-theme="ext-photo-vibrant-pop"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffbe0b15 0%,transparent 40%,transparent 60%,#3a86ff15 100%);z-index:1;}

/* --- Theme 44/80: ext-photo-vibrant-festival --- */
[data-theme="ext-photo-vibrant-festival"] .hero-tag{display:inline-block;padding:0.4rem 1.3rem;border:none;border-radius:999px;color:#fff;background:#8ac926;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;font-weight:600;box-shadow:0 4px 12px #8ac92640;}
[data-theme="ext-photo-vibrant-festival"] .scroll-line{width:2px;height:35px;background:#8ac926;box-shadow:0 0 10px #8ac926;animation:scroll_ext_photo_vibrant_festival 2s ease infinite;}
@keyframes scroll_ext_photo_vibrant_festival{0%,100%{opacity:0.4}50%{opacity:1}}
[data-theme="ext-photo-vibrant-festival"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 40% 60%,#8ac92620 0%,transparent 40%);z-index:1;}

/* --- Theme 45/80: ext-photo-vibrant-candy --- */
[data-theme="ext-photo-vibrant-candy"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:1px solid #ffafcc50;border-radius:6px;color:#ffafcc;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:linear-gradient(135deg,#ffafcc08,transparent);}
[data-theme="ext-photo-vibrant-candy"] .scroll-line{width:auto;height:auto;display:flex;align-items:center;gap:4px;font-size:0.55rem;letter-spacing:0.2em;color:#ffafcc;text-transform:uppercase;}
[data-theme="ext-photo-vibrant-candy"] .scroll-line::after{content:"93";font-size:0.7rem;animation:scroll_ext_photo_vibrant_candy 1.5s ease infinite;}
@keyframes scroll_ext_photo_vibrant_candy{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
[data-theme="ext-photo-vibrant-candy"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(170deg,#ffafcc25 0%,#bde0fe10 40%,transparent 70%);z-index:1;}

/* --- Theme 46/80: ext-photo-vibrant-neon --- */
[data-theme="ext-photo-vibrant-neon"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem 0.5rem;border:none;color:#ff006e;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;border-bottom:2px wavy #ff006e;}
[data-theme="ext-photo-vibrant-neon"] .scroll-line{width:4px;height:4px;border-radius:50%;background:#ff006e;position:relative;box-shadow:0 8px 0 #ff006e60,0 16px 0 #ff006e30;animation:scroll_ext_photo_vibrant_neon 2s ease infinite;}
@keyframes scroll_ext_photo_vibrant_neon{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
[data-theme="ext-photo-vibrant-neon"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 60% 40%,#ff006e20 0%,transparent 40%);z-index:1;}

/* --- Theme 47/80: ext-photo-vibrant-citrus --- */
[data-theme="ext-photo-vibrant-citrus"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#ff9f1c;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-vibrant-citrus"] .hero-tag::before{content:"";width:8px;height:8px;border-radius:50%;background:#ff9f1c;box-shadow:0 0 10px #ff9f1c;display:inline-block;}
[data-theme="ext-photo-vibrant-citrus"] .scroll-line{width:1px;height:30px;background:#ff9f1c;transform-origin:top;animation:scroll_ext_photo_vibrant_citrus 2s ease infinite;}
@keyframes scroll_ext_photo_vibrant_citrus{0%{transform:scaleY(0);opacity:0}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(0);opacity:0;transform-origin:bottom}}
[data-theme="ext-photo-vibrant-citrus"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(190deg,#ff9f1c30 0%,transparent 50%);z-index:1;}

/* --- Theme 48/80: ext-photo-vibrant-bold --- */
[data-theme="ext-photo-vibrant-bold"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#FDE047;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-vibrant-bold"] .hero-tag::before{content:"";width:7px;height:7px;background:#FDE047;display:inline-block;transform:rotate(45deg);}
[data-theme="ext-photo-vibrant-bold"] .scroll-line{width:1px;height:30px;background:repeating-linear-gradient(to bottom,#FDE047 0,#FDE047 3px,transparent 3px,transparent 6px);animation:scroll_ext_photo_vibrant_bold 1s linear infinite;}
@keyframes scroll_ext_photo_vibrant_bold{0%{background-position:0 0}100%{background-position:0 6px}}
[data-theme="ext-photo-vibrant-bold"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,#FDE04720 0%,transparent 40%),radial-gradient(ellipse at 30% 70%,#F9731620 0%,transparent 40%);z-index:1;}

/* --- Theme 49/80: ext-photo-warm-coffee --- */
[data-theme="ext-photo-warm-coffee"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#7f5a4a;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-warm-coffee"] .hero-tag::before{content:"B8";font-size:0.7rem;}
[data-theme="ext-photo-warm-coffee"] .scroll-line{width:8px;height:8px;border-radius:50%;background:#7f5a4a;box-shadow:0 0 0 0 #7f5a4a40;animation:scroll_ext_photo_warm_coffee 2s ease infinite;}
@keyframes scroll_ext_photo_warm_coffee{0%{box-shadow:0 0 0 0 #7f5a4a40}100%{box-shadow:0 0 0 10px transparent}}
[data-theme="ext-photo-warm-coffee"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(140deg,#7f5a4a20 0%,#b98b7320 50%,transparent 100%);z-index:1;}

/* --- Theme 50/80: ext-photo-warm-amber --- */
[data-theme="ext-photo-warm-amber"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#e8c898;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-warm-amber"] .hero-tag::before{content:"+";font-size:0.85rem;font-weight:300;}
[data-theme="ext-photo-warm-amber"] .scroll-line{width:2px;height:30px;background:#e8c89820;position:relative;}
[data-theme="ext-photo-warm-amber"] .scroll-line::before,[data-theme="ext-photo-warm-amber"] .scroll-line::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#e8c898;left:-1px;animation:scroll_ext_photo_warm_amber 2s ease infinite;}
[data-theme="ext-photo-warm-amber"] .scroll-line::before{top:0;animation-delay:0s;}
[data-theme="ext-photo-warm-amber"] .scroll-line::after{bottom:0;animation-delay:1s;}
@keyframes scroll_ext_photo_warm_amber{0%,100%{opacity:0}50%{opacity:1}}
[data-theme="ext-photo-warm-amber"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 10%,#e8c89815 40%,#e8c89835 90%);z-index:1;}

/* --- Theme 51/80: ext-photo-warm-autumn --- */
[data-theme="ext-photo-warm-autumn"] .hero-tag{display:inline-block;padding:0.2rem 0;border:none;color:#8a4b3a;font-size:0.82rem;letter-spacing:0.25em;text-transform:uppercase;font-weight:300;font-style:italic;}
[data-theme="ext-photo-warm-autumn"] .scroll-line{width:2px;height:30px;background:linear-gradient(to bottom,#8a4b3a,#e09060,#8a4b3a);background-size:100% 200%;animation:scroll_ext_photo_warm_autumn 2s ease infinite;}
@keyframes scroll_ext_photo_warm_autumn{0%,100%{background-position:0 0}50%{background-position:0 100%}}
[data-theme="ext-photo-warm-autumn"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(260deg,#8a4b3a25 0%,#e0906015 50%,transparent 100%);z-index:1;}

/* --- Theme 52/80: ext-photo-warm-firelight --- */
[data-theme="ext-photo-warm-firelight"] .hero-tag{display:inline-block;padding:0.5rem 1.3rem;border:none;border-radius:10px;color:#d07060;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:#d0706008;box-shadow:0 2px 12px #d0706015;}
[data-theme="ext-photo-warm-firelight"] .scroll-line{width:6px;height:6px;border-radius:50%;background:#d07060;position:relative;animation:scroll_ext_photo_warm_firelight 2s ease infinite;}
[data-theme="ext-photo-warm-firelight"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;border:1px solid #d0706030;}
@keyframes scroll_ext_photo_warm_firelight{0%,100%{transform:scale(0.8)}50%{transform:scale(1.2)}}
[data-theme="ext-photo-warm-firelight"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 120% 80% at 50% 100%,#d0706030 0%,transparent 60%);z-index:1;}

/* --- Theme 53/80: ext-photo-warm-flannel --- */
[data-theme="ext-photo-warm-flannel"] .hero-tag{display:inline-flex;align-items:center;gap:0.8rem;padding:0.3rem 0;border:none;color:#7a828c;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-warm-flannel"] .hero-tag::after{content:"";width:1px;height:18px;background:linear-gradient(to bottom,#7a828c,transparent);display:inline-block;}
[data-theme="ext-photo-warm-flannel"] .scroll-line{width:16px;height:20px;display:flex;gap:2px;align-items:center;justify-content:center;}
[data-theme="ext-photo-warm-flannel"] .scroll-line::before,[data-theme="ext-photo-warm-flannel"] .scroll-line::after{content:"";width:2px;height:100%;background:#7a828c;}
[data-theme="ext-photo-warm-flannel"] .scroll-line::before{animation:scroll_ext_photo_warm_flannel 1.5s ease infinite;animation-delay:0s;}
[data-theme="ext-photo-warm-flannel"] .scroll-line::after{animation:scroll_ext_photo_warm_flannel 1.5s ease infinite;animation-delay:0.3s;}
@keyframes scroll_ext_photo_warm_flannel{0%,100%{transform:scaleY(0.3)}50%{transform:scaleY(1)}}
[data-theme="ext-photo-warm-flannel"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 0%,#7a828c20 40%,#9ba1a615 70%,transparent 100%);z-index:1;}

/* --- Theme 54/80: ext-photo-warm-vanilla --- */
[data-theme="ext-photo-warm-vanilla"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem;border:none;border-bottom:1px solid #e8d8c040;color:#e8d8c0;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;font-weight:700;}
[data-theme="ext-photo-warm-vanilla"] .scroll-line{width:12px;height:12px;border:2px solid #e8d8c0;border-radius:50%;animation:scroll_ext_photo_warm_vanilla 2s ease infinite;}
@keyframes scroll_ext_photo_warm_vanilla{0%{border-width:2px;opacity:1}100%{border-width:8px;opacity:0}}
[data-theme="ext-photo-warm-vanilla"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,#e8d8c025 0%,transparent 60%),linear-gradient(180deg,transparent 50%,#e8d8c020 100%);z-index:1;}

/* --- Theme 55/80: ext-photo-warm-hearth --- */
[data-theme="ext-photo-warm-hearth"] .hero-tag{display:inline-flex;align-items:center;gap:0.4rem;padding:0.3rem 0;border:none;color:#b3503a;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-warm-hearth"] .hero-tag::before{content:"\B7\B7\B7";letter-spacing:0.1rem;opacity:0.5;}
[data-theme="ext-photo-warm-hearth"] .scroll-line{width:6px;height:6px;border-radius:50%;background:#b3503a;position:relative;}
[data-theme="ext-photo-warm-hearth"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;border:1px solid #b3503a;animation:scroll_ext_photo_warm_hearth 2s ease-out infinite;}
@keyframes scroll_ext_photo_warm_hearth{0%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{opacity:0.5}100%{transform:translate(-50%,-50%) scale(3);opacity:0}}
[data-theme="ext-photo-warm-hearth"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(350deg,#b3503a30 0%,transparent 60%);z-index:1;}

/* --- Theme 56/80: ext-photo-warm-nordic --- */
[data-theme="ext-photo-warm-nordic"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#7a8085;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-warm-nordic"] .hero-tag::before{content:"";width:4px;height:16px;background:#7a8085;display:inline-block;border-radius:2px;box-shadow:8px 0 0 #7a808540;}
[data-theme="ext-photo-warm-nordic"] .scroll-line{width:auto;height:auto;font-size:0.6rem;color:#7a8085;letter-spacing:0.2em;overflow:hidden;white-space:nowrap;animation:scroll_ext_photo_warm_nordic 3s steps(6) infinite;}
@keyframes scroll_ext_photo_warm_nordic{0%{width:0}50%,100%{width:3.5em}}
[data-theme="ext-photo-warm-nordic"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,#7a808525 0%,transparent 50%);z-index:1;}

/* --- Theme 57/80: ext-photo-sport-arena --- */
[data-theme="ext-photo-sport-arena"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#0074ff;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-sport-arena"] .hero-tag::after{content:"°5";font-size:0.7rem;}
[data-theme="ext-photo-sport-arena"] .scroll-line{width:10px;height:10px;background:#0074ff;animation:scroll_ext_photo_sport_arena 1.5s ease infinite;}
@keyframes scroll_ext_photo_sport_arena{0%,100%{transform:scale(0.7);opacity:0.5;border-radius:0}50%{transform:scale(1.2);opacity:1;border-radius:50%}}
[data-theme="ext-photo-sport-arena"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(20deg,#0074ff25 0%,#ffdd0010 40%,transparent 70%);z-index:1;}

/* --- Theme 58/80: ext-photo-sport-champion --- */
[data-theme="ext-photo-sport-champion"] .hero-tag{display:inline-block;padding:0.2rem 0.3rem 0.6rem;border:none;color:#ff4b4b;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-sport-champion"] .hero-tag::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background:#ff4b4b;border-radius:2px;}
[data-theme="ext-photo-sport-champion"] .scroll-line{width:5px;height:5px;border-radius:50%;background:#ff4b4b;animation:scroll_ext_photo_sport_champion 2s ease infinite;}
@keyframes scroll_ext_photo_sport_champion{0%{box-shadow:0 0 0 #ff4b4b,0 10px 0 transparent,0 20px 0 transparent}33%{box-shadow:0 0 0 transparent,0 10px 0 #ff4b4b,0 20px 0 transparent}66%{box-shadow:0 0 0 transparent,0 10px 0 transparent,0 20px 0 #ff4b4b}100%{box-shadow:0 0 0 transparent,0 10px 0 transparent,0 20px 0 transparent}}
[data-theme="ext-photo-sport-champion"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 30%,#ff4b4b20 60%,#ff4b4b35 100%);z-index:1;}

/* --- Theme 59/80: ext-photo-sport-action --- */
[data-theme="ext-photo-sport-action"] .hero-tag{display:inline-block;padding:0.5rem 1.2rem;border:none;color:#c1121f;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-sport-action"] .hero-tag::before{content:"";position:absolute;top:0;left:0;width:12px;height:12px;border-top:2px solid #c1121f;border-left:2px solid #c1121f;}
[data-theme="ext-photo-sport-action"] .hero-tag::after{content:"";position:absolute;bottom:0;right:0;width:12px;height:12px;border-bottom:2px solid #c1121f;border-right:2px solid #c1121f;}
[data-theme="ext-photo-sport-action"] .scroll-line{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #c1121f;position:relative;animation:scroll_ext_photo_sport_action 2s ease infinite;}
[data-theme="ext-photo-sport-action"] .scroll-line::after{content:"";position:absolute;top:-3px;left:-4px;width:8px;height:1px;background:#c1121f40;}
@keyframes scroll_ext_photo_sport_action{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(8px);opacity:0.4}}
[data-theme="ext-photo-sport-action"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(330deg,#c1121f20 0%,#ff705020 50%,transparent 100%);z-index:1;}

/* --- Theme 60/80: ext-photo-sport-floodlight --- */
[data-theme="ext-photo-sport-floodlight"] .hero-tag{display:block;padding:0.5rem 1rem;border:none;color:#00c9a7;font-size:0.75rem;letter-spacing:0.3em;text-transform:uppercase;text-align:center;background:#00c9a708;}
[data-theme="ext-photo-sport-floodlight"] .scroll-line{width:4px;height:4px;border-radius:50%;background:#00c9a7;animation:scroll_ext_photo_sport_floodlight 2s ease infinite;}
@keyframes scroll_ext_photo_sport_floodlight{0%,100%{opacity:0.2;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}
[data-theme="ext-photo-sport-floodlight"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 50% 30%,#00c9a715 0%,#00c9a730 80%,#00c9a745 100%);z-index:1;}

/* --- Theme 61/80: ext-photo-sport-energy --- */
[data-theme="ext-photo-sport-energy"] .hero-tag{display:flex;align-items:center;gap:1rem;padding:0.3rem 0;border:none;color:#ff6392;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-sport-energy"] .hero-tag::before,[data-theme="ext-photo-sport-energy"] .hero-tag::after{content:"";flex:1;height:1px;background:#ff639240;}
[data-theme="ext-photo-sport-energy"] .scroll-line{width:3px;height:35px;background:#ff639215;border-radius:2px;position:relative;overflow:hidden;}
[data-theme="ext-photo-sport-energy"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:50%;background:linear-gradient(to bottom,#ff6392,transparent);animation:scroll_ext_photo_sport_energy 2s ease infinite;}
@keyframes scroll_ext_photo_sport_energy{0%{transform:translateY(-100%)}100%{transform:translateY(200%)}}
[data-theme="ext-photo-sport-energy"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(50deg,#ff639225 0%,transparent 50%,#ffe45e20 100%);z-index:1;}

/* --- Theme 62/80: ext-photo-sport-citrus --- */
[data-theme="ext-photo-sport-citrus"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:1px solid #ff6f5940;border-radius:0;color:#ff6f59;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-sport-citrus"] .hero-tag::before{content:"";position:absolute;top:-2px;left:-2px;width:8px;height:8px;background:#ff6f59;border-radius:50%;}
[data-theme="ext-photo-sport-citrus"] .scroll-line{width:2px;height:30px;background:#ff6f5920;position:relative;}
[data-theme="ext-photo-sport-citrus"] .scroll-line::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#ff6f59;left:-2px;top:0;animation:scroll_ext_photo_sport_citrus 2s ease-in-out infinite;}
@keyframes scroll_ext_photo_sport_citrus{0%{top:0;opacity:1}60%{top:30px;opacity:0.5}100%{top:0;opacity:0}}
[data-theme="ext-photo-sport-citrus"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 10%,#ff6f5920 0%,transparent 50%),radial-gradient(circle at 50% 90%,#f9c74f20 0%,transparent 50%);z-index:1;}

/* --- Theme 63/80: ext-photo-sport-monochrome --- */
[data-theme="ext-photo-sport-monochrome"] .hero-tag{display:inline-block;padding:0.3rem 0;border:none;color:#1a1a1a;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;text-shadow:2px 2px 0 #1a1a1a15;}
[data-theme="ext-photo-sport-monochrome"] .scroll-line{width:10px;height:10px;position:relative;animation:scroll_ext_photo_sport_monochrome 1.2s ease infinite;}
[data-theme="ext-photo-sport-monochrome"] .scroll-line::before{content:"¶5";position:absolute;font-size:0.8rem;color:#1a1a1a;left:50%;top:50%;transform:translate(-50%,-50%);}
@keyframes scroll_ext_photo_sport_monochrome{0%,100%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(1)}75%{transform:scale(1.2)}}
[data-theme="ext-photo-sport-monochrome"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(210deg,transparent 30%,#1a1a1a25 70%,#1a1a1a40 100%);z-index:1;}

/* --- Theme 64/80: ext-photo-sport-drama --- */
[data-theme="ext-photo-sport-drama"] .hero-tag{display:inline-block;padding:0;border:none;color:#c1121f;font-size:0.8rem;letter-spacing:0.25em;text-transform:uppercase;font-weight:400;}
[data-theme="ext-photo-sport-drama"] .scroll-line{width:1px;height:30px;background:linear-gradient(to bottom,#c1121f50,#c1121f);position:relative;}
[data-theme="ext-photo-sport-drama"] .scroll-line::after{content:"93";position:absolute;bottom:-4px;left:-4px;font-size:0.6rem;color:#c1121f;animation:scroll_ext_photo_sport_drama 1.5s ease infinite;}
@keyframes scroll_ext_photo_sport_drama{0%,100%{opacity:0.3}50%{opacity:1}}
[data-theme="ext-photo-sport-drama"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 90%,#c1121f25 0%,transparent 40%),radial-gradient(circle at 90% 10%,#ff573325 0%,transparent 40%);z-index:1;}

/* --- Theme 65/80: ext-photo-fashion-aurora --- */
[data-theme="ext-photo-fashion-aurora"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:1px solid #A9E1FF40;border-radius:0;color:#A9E1FF;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-fashion-aurora"] .hero-tag::after{content:"";position:absolute;bottom:-2px;right:-2px;width:8px;height:8px;background:#A9E1FF;}
[data-theme="ext-photo-fashion-aurora"] .scroll-line{width:8px;height:8px;background:#A9E1FF;animation:scroll_ext_photo_fashion_aurora 2s ease infinite;}
@keyframes scroll_ext_photo_fashion_aurora{0%,100%{border-radius:0;transform:rotate(0deg)}50%{border-radius:50%;transform:rotate(45deg)}}
[data-theme="ext-photo-fashion-aurora"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(280deg,#A9E1FF30 0%,transparent 40%,#C9F2FF15 80%);z-index:1;}

/* --- Theme 66/80: ext-photo-fashion-sunset --- */
[data-theme="ext-photo-fashion-sunset"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem 0.5rem;border:none;border-bottom:2px dotted #FF823A;color:#FF823A;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-photo-fashion-sunset"] .scroll-line{width:1px;height:25px;background:#FF823A30;position:relative;}
[data-theme="ext-photo-fashion-sunset"] .scroll-line::after{content:"";position:absolute;bottom:0;left:-2px;width:5px;height:5px;border-radius:50%;background:#FF823A;animation:scroll_ext_photo_fashion_sunset 1.5s ease infinite;}
@keyframes scroll_ext_photo_fashion_sunset{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
[data-theme="ext-photo-fashion-sunset"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 40% at 50% 50%,#FF823A15 0%,#FF823A30 80%,#FF823A40 100%);z-index:1;}

/* --- Theme 67/80: ext-photo-fashion-retro --- */
[data-theme="ext-photo-fashion-retro"] .hero-tag{display:inline-block;padding:0.3rem 0.2rem 0.5rem;border:none;border-bottom:2px dashed #138A7D;color:#138A7D;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;}
[data-theme="ext-photo-fashion-retro"] .scroll-line{width:4px;height:4px;border-radius:50%;background:#138A7D;animation:scroll_ext_photo_fashion_retro 2s ease infinite;}
@keyframes scroll_ext_photo_fashion_retro{0%,100%{transform:scaleY(1);border-radius:50%}50%{transform:scaleY(4);border-radius:2px}}
[data-theme="ext-photo-fashion-retro"] .hero::before{content:"";position:absolute;inset:0;background:conic-gradient(from 270deg at 50% 50%,transparent 0deg,#138A7D20 90deg,transparent 180deg,#FFF5C520 270deg,transparent 360deg);z-index:1;}

/* --- Theme 68/80: ext-photo-fashion-rosewood --- */
[data-theme="ext-photo-fashion-rosewood"] .hero-tag{display:inline-block;padding:0.4rem 1.2rem;border:1px solid #8F2F4240;border-radius:6px;color:#8F2F42;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;text-shadow:0 0 10px #8F2F4260;box-shadow:0 0 15px #8F2F4220;}
[data-theme="ext-photo-fashion-rosewood"] .scroll-line{width:6px;height:30px;display:flex;gap:2px;justify-content:center;}
[data-theme="ext-photo-fashion-rosewood"] .scroll-line::before,[data-theme="ext-photo-fashion-rosewood"] .scroll-line::after{content:"";width:1px;height:100%;background:#8F2F42;}
[data-theme="ext-photo-fashion-rosewood"] .scroll-line::before{animation:scroll_ext_photo_fashion_rosewood 2s ease infinite;animation-delay:0s;}
[data-theme="ext-photo-fashion-rosewood"] .scroll-line::after{animation:scroll_ext_photo_fashion_rosewood 2s ease infinite;animation-delay:0.5s;}
@keyframes scroll_ext_photo_fashion_rosewood{0%,100%{opacity:0.3}50%{opacity:1}}
[data-theme="ext-photo-fashion-rosewood"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(340deg,#8F2F4220 0%,#B2545B20 50%,transparent 100%);z-index:1;}

/* --- Theme 69/80: ext-photo-fashion-galaxy --- */
[data-theme="ext-photo-fashion-galaxy"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#A885FF;font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-fashion-galaxy"] .hero-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:#A885FF;box-shadow:0 0 8px #A885FF;}
[data-theme="ext-photo-fashion-galaxy"] .scroll-line{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #A885FF;animation:scroll_ext_photo_fashion_galaxy 1.5s ease infinite;}
@keyframes scroll_ext_photo_fashion_galaxy{0%,100%{transform:translateY(-3px);opacity:0.3}50%{transform:translateY(3px);opacity:1}}
[data-theme="ext-photo-fashion-galaxy"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 60%,transparent 0%,#A885FF25 50%,#A885FF40 100%);z-index:1;}

/* --- Theme 70/80: ext-photo-fashion-amber --- */
[data-theme="ext-photo-fashion-amber"] .hero-tag{display:inline-block;padding:0.3rem 1rem;border:none;border-left:2px solid #FFDA9A;border-right:2px solid #FFDA9A;color:#FFDA9A;font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;background:#FFDA9A05;}
[data-theme="ext-photo-fashion-amber"] .scroll-line{width:14px;height:14px;border:1px solid #FFDA9A40;border-radius:50%;position:relative;overflow:hidden;}
[data-theme="ext-photo-fashion-amber"] .scroll-line::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:30%;background:#FFDA9A;animation:scroll_ext_photo_fashion_amber 2s ease infinite;}
@keyframes scroll_ext_photo_fashion_amber{0%{height:0}50%{height:100%}100%{height:0;transform:translateY(-100%)}}
[data-theme="ext-photo-fashion-amber"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#FFDA9A25 0%,#8F652210 30%,transparent 60%);z-index:1;}

/* --- Theme 71/80: ext-photo-fashion-dusty --- */
[data-theme="ext-photo-fashion-dusty"] .hero-tag{display:inline-flex;align-items:center;gap:0.6rem;padding:0.3rem 0;border:none;color:#A08085;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-fashion-dusty"] .hero-tag::before{content:"01";font-size:0.65rem;font-weight:700;color:#A0808560;border:1px solid #A0808540;border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;}
[data-theme="ext-photo-fashion-dusty"] .scroll-line{width:16px;height:16px;position:relative;}
[data-theme="ext-photo-fashion-dusty"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:50%;background:#A08085;transform:translate(-50%,-50%) rotate(0deg) translateX(6px);animation:scroll_ext_photo_fashion_dusty 2s linear infinite;}
@keyframes scroll_ext_photo_fashion_dusty{0%{transform:translate(-50%,-50%) rotate(0deg) translateX(6px)}100%{transform:translate(-50%,-50%) rotate(360deg) translateX(6px)}}
[data-theme="ext-photo-fashion-dusty"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 80% at 20% 80%,#A0808520 0%,transparent 40%),radial-gradient(ellipse 80% 80% at 80% 20%,#BC8E8720 0%,transparent 40%);z-index:1;}

/* --- Theme 72/80: ext-photo-fashion-butter --- */
[data-theme="ext-photo-fashion-butter"] .hero-tag{display:inline-block;padding:0.5rem 0.2rem 0.3rem;border:none;color:#FFCC50;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-fashion-butter"] .hero-tag::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:#FFCC50;}
[data-theme="ext-photo-fashion-butter"] .scroll-line{width:14px;height:14px;display:flex;flex-direction:column;gap:2px;justify-content:center;align-items:center;}
[data-theme="ext-photo-fashion-butter"] .scroll-line::before,[data-theme="ext-photo-fashion-butter"] .scroll-line::after{content:"";width:100%;height:1px;background:#FFCC50;}
[data-theme="ext-photo-fashion-butter"] .scroll-line::before{animation:scroll_ext_photo_fashion_butter 1.5s ease infinite;animation-delay:0s;}
[data-theme="ext-photo-fashion-butter"] .scroll-line::after{animation:scroll_ext_photo_fashion_butter 1.5s ease infinite;animation-delay:0.3s;}
@keyframes scroll_ext_photo_fashion_butter{0%,100%{transform:scaleX(0.3)}50%{transform:scaleX(1)}}
[data-theme="ext-photo-fashion-butter"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(230deg,#FFCC5030 0%,#F4D06F15 40%,transparent 70%);z-index:1;}

/* --- Theme 73/80: ext-photo-pure-arctic --- */
[data-theme="ext-photo-pure-arctic"] .hero-tag{display:inline-block;padding:0.3rem 0 0.5rem;border:none;border-bottom:1px solid #7DB4C730;color:#7DB4C7;font-size:0.72rem;letter-spacing:0.4em;text-transform:uppercase;font-weight:500;}
[data-theme="ext-photo-pure-arctic"] .scroll-line{width:4px;height:4px;border-radius:50%;background:#7DB4C7;box-shadow:0 0 8px #7DB4C7,0 0 16px #7DB4C740;animation:scroll_ext_photo_pure_arctic 2s ease infinite;}
@keyframes scroll_ext_photo_pure_arctic{0%,100%{opacity:0.4;transform:translateY(-5px)}50%{opacity:1;transform:translateY(5px)}}
[data-theme="ext-photo-pure-arctic"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,#7DB4C710 0%,#7DB4C725 60%,#7DB4C740 100%);z-index:1;}

/* --- Theme 74/80: ext-photo-pure-ocean --- */
[data-theme="ext-photo-pure-ocean"] .hero-tag{display:inline-block;padding:0.4rem 1.4rem 0.4rem 1rem;border:none;color:#8AD9F2;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:#8AD9F208;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 100%,0 100%);}
[data-theme="ext-photo-pure-ocean"] .scroll-line{width:18px;height:20px;display:flex;gap:2px;align-items:flex-end;justify-content:center;}
[data-theme="ext-photo-pure-ocean"] .scroll-line::before,[data-theme="ext-photo-pure-ocean"] .scroll-line::after{content:"";width:3px;background:#8AD9F2;}
[data-theme="ext-photo-pure-ocean"] .scroll-line::before{height:8px;animation:scroll_ext_photo_pure_ocean 1s ease infinite;animation-delay:0s;}
[data-theme="ext-photo-pure-ocean"] .scroll-line::after{height:14px;animation:scroll_ext_photo_pure_ocean 1s ease infinite;animation-delay:0.2s;}
@keyframes scroll_ext_photo_pure_ocean{0%,100%{height:4px}50%{height:16px}}
[data-theme="ext-photo-pure-ocean"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(70deg,transparent 0%,#8AD9F220 30%,#E6FBFF15 60%,transparent 90%);z-index:1;}

/* --- Theme 75/80: ext-photo-pure-mint --- */
[data-theme="ext-photo-pure-mint"] .hero-tag{display:inline-block;padding:0.6rem 0.2rem 0.3rem;border:none;color:#EFFFF8;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-pure-mint"] .hero-tag::before,[data-theme="ext-photo-pure-mint"] .hero-tag::after{content:"";position:absolute;top:0;width:40%;height:1px;background:#EFFFF8;}
[data-theme="ext-photo-pure-mint"] .hero-tag::before{left:0;}
[data-theme="ext-photo-pure-mint"] .hero-tag::after{right:0;}
[data-theme="ext-photo-pure-mint"] .scroll-line{width:14px;height:14px;border-radius:50%;border:1px solid #EFFFF830;position:relative;}
[data-theme="ext-photo-pure-mint"] .scroll-line::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;border:2px solid transparent;border-top-color:#EFFFF8;animation:scroll_ext_photo_pure_mint 1.5s linear infinite;}
@keyframes scroll_ext_photo_pure_mint{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
[data-theme="ext-photo-pure-mint"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 80%,#EFFFF825 0%,transparent 40%);z-index:1;}

/* --- Theme 76/80: ext-photo-pure-lime --- */
[data-theme="ext-photo-pure-lime"] .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0;border:none;color:#4A7A00;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;}
[data-theme="ext-photo-pure-lime"] .hero-tag::before{content:"";width:10px;height:10px;border:1px solid #4A7A00;display:inline-block;}
[data-theme="ext-photo-pure-lime"] .scroll-line{width:12px;height:12px;border:1px solid #4A7A00;position:relative;overflow:hidden;}
[data-theme="ext-photo-pure-lime"] .scroll-line::after{content:"";position:absolute;bottom:0;left:0;width:100%;background:#4A7A00;animation:scroll_ext_photo_pure_lime 2s ease infinite;}
@keyframes scroll_ext_photo_pure_lime{0%{height:0}50%{height:100%}100%{height:0;transform:translateY(-100%)}}
[data-theme="ext-photo-pure-lime"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(310deg,#4A7A0025 0%,#6FAA0010 40%,transparent 70%);z-index:1;}

/* --- Theme 77/80: ext-photo-pure-clean --- */
[data-theme="ext-photo-pure-clean"] .hero-tag{display:inline-block;padding:0.3rem 0.8rem;border:none;border-bottom:2px solid #80D2AB;color:#80D2AB;font-size:0.78rem;letter-spacing:0.15em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-pure-clean"] .hero-tag::before,[data-theme="ext-photo-pure-clean"] .hero-tag::after{content:"";position:absolute;bottom:-2px;width:4px;height:2px;background:#80D2AB40;}
[data-theme="ext-photo-pure-clean"] .hero-tag::before{left:-8px;}
[data-theme="ext-photo-pure-clean"] .hero-tag::after{right:-8px;}
[data-theme="ext-photo-pure-clean"] .scroll-line{width:5px;height:5px;background:#80D2AB;position:relative;animation:scroll_ext_photo_pure_clean 2s ease infinite;}
[data-theme="ext-photo-pure-clean"] .scroll-line::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:5px;height:5px;border:1px solid #80D2AB;animation:scroll_ext_photo_pure_clean 2s ease infinite;animation-delay:0.5s;}
@keyframes scroll_ext_photo_pure_clean{0%{transform:scale(1);opacity:1}100%{transform:scale(3);opacity:0}}
[data-theme="ext-photo-pure-clean"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 10% 10%,#80D2AB20 0%,transparent 40%),radial-gradient(ellipse at 90% 90%,#BEDDA420 0%,transparent 40%);z-index:1;}

/* --- Theme 78/80: ext-photo-pure-cloud --- */
[data-theme="ext-photo-pure-cloud"] .hero-tag{display:inline-block;padding:0.4rem 1.3rem;border:none;border-radius:999px;color:#fff;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;font-weight:600;background:linear-gradient(135deg,#B7B7B7,#D9D9D9);}
[data-theme="ext-photo-pure-cloud"] .scroll-line{width:10px;height:10px;border-right:2px solid #B7B7B7;border-bottom:2px solid #B7B7B7;border-radius:0 0 30% 0;transform:rotate(45deg);animation:scroll_ext_photo_pure_cloud 1.5s ease infinite;}
@keyframes scroll_ext_photo_pure_cloud{0%,100%{transform:rotate(45deg) translate(0,0)}50%{transform:rotate(45deg) translate(3px,3px)}}
[data-theme="ext-photo-pure-cloud"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(250deg,transparent 20%,#B7B7B725 60%,#B7B7B740 100%);z-index:1;}

/* --- Theme 79/80: ext-photo-pure-modern --- */
[data-theme="ext-photo-pure-modern"] .hero-tag{display:inline-block;padding:0.6rem 1.2rem 0.4rem;border:none;color:#FFF0D2;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;position:relative;background:#FFF0D205;}
[data-theme="ext-photo-pure-modern"] .hero-tag::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#FFF0D2,#80D2AB,#FFF0D2);}1
[data-theme="ext-photo-pure-modern"] .scroll-line{width:5px;height:5px;border-radius:50%;background:#FFF0D2;animation:scroll_ext_photo_pure_modern 2s ease infinite;}
@keyframes scroll_ext_photo_pure_modern{0%,100%{box-shadow:0 0 0 0 #FFF0D240}50%{box-shadow:0 0 0 8px transparent,0 0 15px #FFF0D260}}
[data-theme="ext-photo-pure-modern"] .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 80%,transparent 0%,#FFF0D220 40%,#FFF0D235 100%);z-index:1;}

/* --- Theme 80/80: ext-photo-pure-earth --- */
[data-theme="ext-photo-pure-earth"] .hero-tag{display:inline-block;padding:0.3rem 1rem;border:none;color:#4A3F36;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;position:relative;}
[data-theme="ext-photo-pure-earth"] .hero-tag::before,[data-theme="ext-photo-pure-earth"] .hero-tag::after{content:"";position:absolute;top:0;width:1px;height:100%;background:#4A3F36;}
[data-theme="ext-photo-pure-earth"] .hero-tag::before{left:0;}
[data-theme="ext-photo-pure-earth"] .hero-tag::after{right:0;}
[data-theme="ext-photo-pure-earth"] .scroll-line{width:1px;height:30px;background:#4A3F3640;position:relative;}
[data-theme="ext-photo-pure-earth"] .scroll-line::after{content:"";position:absolute;bottom:-3px;left:-2px;width:5px;height:5px;border-radius:50%;background:#4A3F36;box-shadow:0 0 8px #4A3F36;animation:scroll_ext_photo_pure_earth 2s ease infinite;}
@keyframes scroll_ext_photo_pure_earth{0%,100%{opacity:0.4}50%{opacity:1}}
[data-theme="ext-photo-pure-earth"] .hero::before{content:"";position:absolute;inset:0;background:linear-gradient(130deg,#4A3F3620 0%,transparent 40%,#7E9C7620 100%);z-index:1;}
/* ============================================================ */
/* 80 UNIQUE HERO-TITLE EFFECTS - each completely different    */
/* Solid color text (no gradient), glow/shadow varies per theme */
/* ============================================================ */

/* Per-character: solid color only, no per-char effects */
.hero-title .ht-char{display:inline;}
[data-theme="ext-light-aurora"] .hero-title .ht-char:nth-child(4n+1){color:#5b8def;}
[data-theme="ext-light-aurora"] .hero-title .ht-char:nth-child(4n+2){color:#a855f7;}
[data-theme="ext-light-aurora"] .hero-title .ht-char:nth-child(4n+3){color:#ec4899;}
[data-theme="ext-light-aurora"] .hero-title .ht-char:nth-child(4n){color:#06b6d4;}
[data-theme="ext-light-aurora"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 30px #5b8def40,0 0 60px #5b8def20;}
[data-theme="ext-light-cloud"] .hero-title .ht-char:nth-child(4n+1){color:#6cb4ef;}
[data-theme="ext-light-cloud"] .hero-title .ht-char:nth-child(4n+2){color:#a0d8ff;}
[data-theme="ext-light-cloud"] .hero-title .ht-char:nth-child(4n+3){color:#7c9cc4;}
[data-theme="ext-light-cloud"] .hero-title .ht-char:nth-child(4n){color:#b8d4f0;}
[data-theme="ext-light-cloud"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:3px 3px 0 #a0d8ff30,6px 6px 0 #a0d8ff15;}
[data-theme="ext-light-petal"] .hero-title .ht-char:nth-child(4n+1){color:#e8709a;}
[data-theme="ext-light-petal"] .hero-title .ht-char:nth-child(4n+2){color:#f0a0b8;}
[data-theme="ext-light-petal"] .hero-title .ht-char:nth-child(4n+3){color:#d04068;}
[data-theme="ext-light-petal"] .hero-title .ht-char:nth-child(4n){color:#ff8fb0;}
[data-theme="ext-light-petal"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 4px 20px #d0406850;}
[data-theme="ext-light-mint"] .hero-title .ht-char:nth-child(4n+1){color:#3bcf8a;}
[data-theme="ext-light-mint"] .hero-title .ht-char:nth-child(4n+2){color:#2dd4bf;}
[data-theme="ext-light-mint"] .hero-title .ht-char:nth-child(4n+3){color:#10b981;}
[data-theme="ext-light-mint"] .hero-title .ht-char:nth-child(4n){color:#6ee7b7;}
[data-theme="ext-light-mint"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 -4px 20px #6ee7b740;}
[data-theme="ext-light-pearl"] .hero-title .ht-char:nth-child(4n+1){color:#c8a070;}
[data-theme="ext-light-pearl"] .hero-title .ht-char:nth-child(4n+2){color:#e8d0b8;}
[data-theme="ext-light-pearl"] .hero-title .ht-char:nth-child(4n+3){color:#b88c50;}
[data-theme="ext-light-pearl"] .hero-title .ht-char:nth-child(4n){color:#d4b898;}
[data-theme="ext-light-pearl"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:-4px 0 20px #c8a07040;}
[data-theme="ext-light-lavender"] .hero-title .ht-char:nth-child(4n+1){color:#8b6fd4;}
[data-theme="ext-light-lavender"] .hero-title .ht-char:nth-child(4n+2){color:#a78bfa;}
[data-theme="ext-light-lavender"] .hero-title .ht-char:nth-child(4n+3){color:#7c3aed;}
[data-theme="ext-light-lavender"] .hero-title .ht-char:nth-child(4n){color:#c4b5fd;}
[data-theme="ext-light-lavender"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:4px 0 20px #a78bfa40;}
[data-theme="ext-light-honey"] .hero-title .ht-char:nth-child(4n+1){color:#d4a020;}
[data-theme="ext-light-honey"] .hero-title .ht-char:nth-child(4n+2){color:#f0c040;}
[data-theme="ext-light-honey"] .hero-title .ht-char:nth-child(4n+3){color:#b8881a;}
[data-theme="ext-light-honey"] .hero-title .ht-char:nth-child(4n){color:#e8c860;}
[data-theme="ext-light-honey"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:4px 4px 20px #b8881a40;}
[data-theme="ext-light-coral"] .hero-title .ht-char:nth-child(4n+1){color:#ff7855;}
[data-theme="ext-light-coral"] .hero-title .ht-char:nth-child(4n+2){color:#ff9c7a;}
[data-theme="ext-light-coral"] .hero-title .ht-char:nth-child(4n+3){color:#e85a3a;}
[data-theme="ext-light-coral"] .hero-title .ht-char:nth-child(4n){color:#ffa890;}
[data-theme="ext-light-coral"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 10px #ffa89050,0 0 30px #ffa89030,0 0 60px #ffa89015;}
[data-theme="ext-light-sky"] .hero-title .ht-char:nth-child(4n+1){color:#3b82f6;}
[data-theme="ext-light-sky"] .hero-title .ht-char:nth-child(4n+2){color:#60a5fa;}
[data-theme="ext-light-sky"] .hero-title .ht-char:nth-child(4n+3){color:#2563eb;}
[data-theme="ext-light-sky"] .hero-title .ht-char:nth-child(4n){color:#93c5fd;}
[data-theme="ext-light-sky"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #3b82f660;}
[data-theme="ext-light-sage"] .hero-title .ht-char:nth-child(4n+1){color:#7aad5a;}
[data-theme="ext-light-sage"] .hero-title .ht-char:nth-child(4n+2){color:#9caf88;}
[data-theme="ext-light-sage"] .hero-title .ht-char:nth-child(4n+3){color:#6b8e4e;}
[data-theme="ext-light-sage"] .hero-title .ht-char:nth-child(4n){color:#a9ba9d;}
[data-theme="ext-light-sage"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;filter:drop-shadow(0 4px 8px #9caf8840);}
[data-theme="ext-light-girl-sakura"] .hero-title .ht-char:nth-child(4n+1){color:#ff6b9d;}
[data-theme="ext-light-girl-sakura"] .hero-title .ht-char:nth-child(4n+2){color:#ffb0c8;}
[data-theme="ext-light-girl-sakura"] .hero-title .ht-char:nth-child(4n+3){color:#e8457a;}
[data-theme="ext-light-girl-sakura"] .hero-title .ht-char:nth-child(4n){color:#ff8fb8;}
[data-theme="ext-light-girl-sakura"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;}
[data-theme="ext-light-girl-peach"] .hero-title .ht-char:nth-child(4n+1){color:#ff8855;}
[data-theme="ext-light-girl-peach"] .hero-title .ht-char:nth-child(4n+2){color:#ffaa77;}
[data-theme="ext-light-girl-peach"] .hero-title .ht-char:nth-child(4n+3){color:#e67040;}
[data-theme="ext-light-girl-peach"] .hero-title .ht-char:nth-child(4n){color:#ffbb99;}
[data-theme="ext-light-girl-peach"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 40px #ffbb9960;filter:drop-shadow(0 0 15px #ffbb9930);}
[data-theme="ext-light-girl-cotton"] .hero-title .ht-char:nth-child(4n+1){color:#c084fc;}
[data-theme="ext-light-girl-cotton"] .hero-title .ht-char:nth-child(4n+2){color:#d8b0fe;}
[data-theme="ext-light-girl-cotton"] .hero-title .ht-char:nth-child(4n+3){color:#a855f7;}
[data-theme="ext-light-girl-cotton"] .hero-title .ht-char:nth-child(4n){color:#e0c0ff;}
[data-theme="ext-light-girl-cotton"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:1px 1px 0 #c084fc40,2px 2px 0 #c084fc30,3px 3px 0 #c084fc20,4px 4px 0 #c084fc10;}
[data-theme="ext-light-girl-berry"] .hero-title .ht-char:nth-child(4n+1){color:#e8456a;}
[data-theme="ext-light-girl-berry"] .hero-title .ht-char:nth-child(4n+2){color:#f06890;}
[data-theme="ext-light-girl-berry"] .hero-title .ht-char:nth-child(4n+3){color:#c1121f;}
[data-theme="ext-light-girl-berry"] .hero-title .ht-char:nth-child(4n){color:#ff7090;}
[data-theme="ext-light-girl-berry"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #f0689050;text-shadow:0 0 20px #f0689030;}
[data-theme="ext-light-girl-lemon"] .hero-title .ht-char:nth-child(4n+1){color:#d4c020;}
[data-theme="ext-light-girl-lemon"] .hero-title .ht-char:nth-child(4n+2){color:#f0e040;}
[data-theme="ext-light-girl-lemon"] .hero-title .ht-char:nth-child(4n+3){color:#b8a010;}
[data-theme="ext-light-girl-lemon"] .hero-title .ht-char:nth-child(4n){color:#e8d830;}
[data-theme="ext-light-girl-lemon"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 5px #b8a010,0 0 10px #b8a010,0 0 20px #b8a010,0 0 40px #b8a01080;}
[data-theme="ext-light-girl-icing"] .hero-title .ht-char:nth-child(4n+1){color:#f0a0b8;}
[data-theme="ext-light-girl-icing"] .hero-title .ht-char:nth-child(4n+2){color:#ffc8d8;}
[data-theme="ext-light-girl-icing"] .hero-title .ht-char:nth-child(4n+3){color:#e08098;}
[data-theme="ext-light-girl-icing"] .hero-title .ht-char:nth-child(4n){color:#fdd0e0;}
[data-theme="ext-light-girl-icing"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:4px 4px 0 #fdd0e0;}
[data-theme="ext-light-girl-mango"] .hero-title .ht-char:nth-child(4n+1){color:#ffa830;}
[data-theme="ext-light-girl-mango"] .hero-title .ht-char:nth-child(4n+2){color:#ffc870;}
[data-theme="ext-light-girl-mango"] .hero-title .ht-char:nth-child(4n+3){color:#e89010;}
[data-theme="ext-light-girl-mango"] .hero-title .ht-char:nth-child(4n){color:#ffbb50;}
[data-theme="ext-light-girl-mango"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 2px 8px #ffa83030;}
[data-theme="ext-light-girl-bubble"] .hero-title .ht-char:nth-child(4n+1){color:#60a5fa;}
[data-theme="ext-light-girl-bubble"] .hero-title .ht-char:nth-child(4n+2){color:#c084fc;}
[data-theme="ext-light-girl-bubble"] .hero-title .ht-char:nth-child(4n+3){color:#f472b6;}
[data-theme="ext-light-girl-bubble"] .hero-title .ht-char:nth-child(4n){color:#34d399;}
[data-theme="ext-light-girl-bubble"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:2px 2px 0 #c084fc60,0 0 30px #c084fc20;}
[data-theme="ext-light-lady-rose"] .hero-title .ht-char:nth-child(4n+1){color:#c62828;}
[data-theme="ext-light-lady-rose"] .hero-title .ht-char:nth-child(4n+2){color:#d45050;}
[data-theme="ext-light-lady-rose"] .hero-title .ht-char:nth-child(4n+3){color:#a01e1e;}
[data-theme="ext-light-lady-rose"] .hero-title .ht-char:nth-child(4n){color:#e87070;}
[data-theme="ext-light-lady-rose"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 3px #a01e1e80,0 0 8px #a01e1e60;}
[data-theme="ext-light-lady-champagne"] .hero-title .ht-char:nth-child(4n+1){color:#c8a44e;}
[data-theme="ext-light-lady-champagne"] .hero-title .ht-char:nth-child(4n+2){color:#e8d4a0;}
[data-theme="ext-light-lady-champagne"] .hero-title .ht-char:nth-child(4n+3){color:#b89030;}
[data-theme="ext-light-lady-champagne"] .hero-title .ht-char:nth-child(4n){color:#d4b870;}
[data-theme="ext-light-lady-champagne"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 50px #d4b87050;}
[data-theme="ext-light-lady-mauve"] .hero-title .ht-char:nth-child(4n+1){color:#9c6abf;}
[data-theme="ext-light-lady-mauve"] .hero-title .ht-char:nth-child(4n+2){color:#b88ce0;}
[data-theme="ext-light-lady-mauve"] .hero-title .ht-char:nth-child(4n+3){color:#7c4d9f;}
[data-theme="ext-light-lady-mauve"] .hero-title .ht-char:nth-child(4n){color:#c8a0d8;}
[data-theme="ext-light-lady-mauve"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 5px #9c6abf90;}
[data-theme="ext-light-lady-cream"] .hero-title .ht-char:nth-child(4n+1){color:#b8956a;}
[data-theme="ext-light-lady-cream"] .hero-title .ht-char:nth-child(4n+2){color:#d8c0a0;}
[data-theme="ext-light-lady-cream"] .hero-title .ht-char:nth-child(4n+3){color:#a08050;}
[data-theme="ext-light-lady-cream"] .hero-title .ht-char:nth-child(4n){color:#c8b088;}
[data-theme="ext-light-lady-cream"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 -3px 15px #d8c0a040;}
[data-theme="ext-light-lady-blush"] .hero-title .ht-char:nth-child(4n+1){color:#e08080;}
[data-theme="ext-light-lady-blush"] .hero-title .ht-char:nth-child(4n+2){color:#f0a0a0;}
[data-theme="ext-light-lady-blush"] .hero-title .ht-char:nth-child(4n+3){color:#c06060;}
[data-theme="ext-light-lady-blush"] .hero-title .ht-char:nth-child(4n){color:#e89898;}
[data-theme="ext-light-lady-blush"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 3px 15px #c0606040;}
[data-theme="ext-light-lady-silk"] .hero-title .ht-char:nth-child(4n+1){color:#7070d0;}
[data-theme="ext-light-lady-silk"] .hero-title .ht-char:nth-child(4n+2){color:#9090e0;}
[data-theme="ext-light-lady-silk"] .hero-title .ht-char:nth-child(4n+3){color:#5050c0;}
[data-theme="ext-light-lady-silk"] .hero-title .ht-char:nth-child(4n){color:#8080d8;}
[data-theme="ext-light-lady-silk"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:-3px 0 15px #8080d840;}
[data-theme="ext-light-lady-jade"] .hero-title .ht-char:nth-child(4n+1){color:#3aad7a;}
[data-theme="ext-light-lady-jade"] .hero-title .ht-char:nth-child(4n+2){color:#5cc89a;}
[data-theme="ext-light-lady-jade"] .hero-title .ht-char:nth-child(4n+3){color:#2a8a5a;}
[data-theme="ext-light-lady-jade"] .hero-title .ht-char:nth-child(4n){color:#48b888;}
[data-theme="ext-light-lady-jade"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:3px 0 15px #3aad7a40;}
[data-theme="ext-light-lady-amber"] .hero-title .ht-char:nth-child(4n+1){color:#c08020;}
[data-theme="ext-light-lady-amber"] .hero-title .ht-char:nth-child(4n+2){color:#e0a040;}
[data-theme="ext-light-lady-amber"] .hero-title .ht-char:nth-child(4n+3){color:#a06810;}
[data-theme="ext-light-lady-amber"] .hero-title .ht-char:nth-child(4n){color:#d09030;}
[data-theme="ext-light-lady-amber"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:2px 2px 0 #e0a040;}
[data-theme="ext-light-pure-snow"] .hero-title .ht-char:nth-child(4n+1){color:#5a9ad0;}
[data-theme="ext-light-pure-snow"] .hero-title .ht-char:nth-child(4n+2){color:#a0d8ff;}
[data-theme="ext-light-pure-snow"] .hero-title .ht-char:nth-child(4n+3){color:#3b82f6;}
[data-theme="ext-light-pure-snow"] .hero-title .ht-char:nth-child(4n){color:#80c0f0;}
[data-theme="ext-light-pure-snow"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:3px 3px 0 #3b82f6,0 0 20px #3b82f630;}
[data-theme="ext-light-pure-lily"] .hero-title .ht-char:nth-child(4n+1){color:#6aa040;}
[data-theme="ext-light-pure-lily"] .hero-title .ht-char:nth-child(4n+2){color:#8ab85a;}
[data-theme="ext-light-pure-lily"] .hero-title .ht-char:nth-child(4n+3){color:#4a8030;}
[data-theme="ext-light-pure-lily"] .hero-title .ht-char:nth-child(4n){color:#7ab048;}
[data-theme="ext-light-pure-lily"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:1px 1px #7ab04850,2px 2px #7ab04840,3px 3px #7ab04830,4px 4px #7ab04820,5px 5px #7ab04810;}
[data-theme="ext-light-pure-aqua"] .hero-title .ht-char:nth-child(4n+1){color:#3bc5e8;}
[data-theme="ext-light-pure-aqua"] .hero-title .ht-char:nth-child(4n+2){color:#80d8f0;}
[data-theme="ext-light-pure-aqua"] .hero-title .ht-char:nth-child(4n+3){color:#0ea5e9;}
[data-theme="ext-light-pure-aqua"] .hero-title .ht-char:nth-child(4n){color:#5cd0e8;}
[data-theme="ext-light-pure-aqua"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:2px #3bc5e8;}
[data-theme="ext-light-pure-breeze"] .hero-title .ht-char:nth-child(4n+1){color:#2dd4bf;}
[data-theme="ext-light-pure-breeze"] .hero-title .ht-char:nth-child(4n+2){color:#5eead4;}
[data-theme="ext-light-pure-breeze"] .hero-title .ht-char:nth-child(4n+3){color:#14b8a6;}
[data-theme="ext-light-pure-breeze"] .hero-title .ht-char:nth-child(4n){color:#40e0d0;}
[data-theme="ext-light-pure-breeze"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #5eead440;text-shadow:0 0 25px #5eead430;}
[data-theme="ext-light-pure-ivory"] .hero-title .ht-char:nth-child(4n+1){color:#c8b888;}
[data-theme="ext-light-pure-ivory"] .hero-title .ht-char:nth-child(4n+2){color:#e8d8b0;}
[data-theme="ext-light-pure-ivory"] .hero-title .ht-char:nth-child(4n+3){color:#b0a070;}
[data-theme="ext-light-pure-ivory"] .hero-title .ht-char:nth-child(4n){color:#d8c898;}
[data-theme="ext-light-pure-ivory"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;filter:drop-shadow(0 8px 16px #b0a07030);}
[data-theme="ext-light-pure-dawn"] .hero-title .ht-char:nth-child(4n+1){color:#e89070;}
[data-theme="ext-light-pure-dawn"] .hero-title .ht-char:nth-child(4n+2){color:#f0a888;}
[data-theme="ext-light-pure-dawn"] .hero-title .ht-char:nth-child(4n+3){color:#d07858;}
[data-theme="ext-light-pure-dawn"] .hero-title .ht-char:nth-child(4n){color:#e8a080;}
[data-theme="ext-light-pure-dawn"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;filter:drop-shadow(0 2px 4px #e8a08040);}
[data-theme="ext-light-youth-sky"] .hero-title .ht-char:nth-child(4n+1){color:#3b82f6;}
[data-theme="ext-light-youth-sky"] .hero-title .ht-char:nth-child(4n+2){color:#60a5fa;}
[data-theme="ext-light-youth-sky"] .hero-title .ht-char:nth-child(4n+3){color:#2563eb;}
[data-theme="ext-light-youth-sky"] .hero-title .ht-char:nth-child(4n){color:#93c5fd;}
[data-theme="ext-light-youth-sky"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 15px #3b82f640;filter:drop-shadow(0 4px 8px #3b82f620);}
[data-theme="ext-light-youth-grass"] .hero-title .ht-char:nth-child(4n+1){color:#4caf50;}
[data-theme="ext-light-youth-grass"] .hero-title .ht-char:nth-child(4n+2){color:#66bb6a;}
[data-theme="ext-light-youth-grass"] .hero-title .ht-char:nth-child(4n+3){color:#388e3c;}
[data-theme="ext-light-youth-grass"] .hero-title .ht-char:nth-child(4n){color:#81c784;}
[data-theme="ext-light-youth-grass"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 8px #66bb6a,0 0 16px #66bb6a,0 0 30px #66bb6a60;}
[data-theme="ext-light-youth-orange"] .hero-title .ht-char:nth-child(4n+1){color:#ff9020;}
[data-theme="ext-light-youth-orange"] .hero-title .ht-char:nth-child(4n+2){color:#ffb060;}
[data-theme="ext-light-youth-orange"] .hero-title .ht-char:nth-child(4n+3){color:#e87810;}
[data-theme="ext-light-youth-orange"] .hero-title .ht-char:nth-child(4n){color:#ffa040;}
[data-theme="ext-light-youth-orange"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 3px #e8781060;}
[data-theme="ext-light-yuth-coral"] .hero-title .ht-char:nth-child(4n+1){color:#ff5e3a;}
[data-theme="ext-light-yuth-coral"] .hero-title .ht-char:nth-child(4n+2){color:#ff7e5a;}
[data-theme="ext-light-yuth-coral"] .hero-title .ht-char:nth-child(4n+3){color:#e84a26;}
[data-theme="ext-light-yuth-coral"] .hero-title .ht-char:nth-child(4n){color:#ff6e4a;}
[data-theme="ext-light-yuth-coral"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 20px #ff6e4a40,2px 2px 10px #ff6e4a20,-2px -2px 10px #ff6e4a20;}
[data-theme="ext-light-youth-lake"] .hero-title .ht-char:nth-child(4n+1){color:#1ab8b8;}
[data-theme="ext-light-youth-lake"] .hero-title .ht-char:nth-child(4n+2){color:#40d0d0;}
[data-theme="ext-light-youth-lake"] .hero-title .ht-char:nth-child(4n+3){color:#0e9e9e;}
[data-theme="ext-light-youth-lake"] .hero-title .ht-char:nth-child(4n){color:#30c8c8;}
[data-theme="ext-light-youth-lake"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 15px #1ab8b8,0 0 30px #1ab8b840;}
[data-theme="ext-light-youth-sun"] .hero-title .ht-char:nth-child(4n+1){color:#f5b800;}
[data-theme="ext-light-youth-sun"] .hero-title .ht-char:nth-child(4n+2){color:#ffd040;}
[data-theme="ext-light-youth-sun"] .hero-title .ht-char:nth-child(4n+3){color:#e0a000;}
[data-theme="ext-light-youth-sun"] .hero-title .ht-char:nth-child(4n){color:#ffc830;}
[data-theme="ext-light-youth-sun"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:0.05em;text-shadow:0 0 20px #ffd04040;}
[data-theme="ext-light-youth-grape"] .hero-title .ht-char:nth-child(4n+1){color:#9060d0;}
[data-theme="ext-light-youth-grape"] .hero-title .ht-char:nth-child(4n+2){color:#b080e8;}
[data-theme="ext-light-youth-grape"] .hero-title .ht-char:nth-child(4n+3){color:#7040c0;}
[data-theme="ext-light-youth-grape"] .hero-title .ht-char:nth-child(4n){color:#a070d8;}
[data-theme="ext-light-youth-grape"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.03em;text-shadow:0 0 20px #7040c040;}
[data-theme="ext-light-youth-rainbow"] .hero-title .ht-char:nth-child(4n+1){color:#ff6b6b;}
[data-theme="ext-light-youth-rainbow"] .hero-title .ht-char:nth-child(4n+2){color:#ffd93d;}
[data-theme="ext-light-youth-rainbow"] .hero-title .ht-char:nth-child(4n+3){color:#6bcf7f;}
[data-theme="ext-light-youth-rainbow"] .hero-title .ht-char:nth-child(4n){color:#4d9de0;}
[data-theme="ext-light-youth-rainbow"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:300;line-height:1.05;margin:1.4rem 0;letter-spacing:0.02em;text-shadow:0 0 30px #4d9de050;}
[data-theme="ext-photo-vibrant-street"] .hero-title .ht-char:nth-child(4n+1){color:#ff595e;}
[data-theme="ext-photo-vibrant-street"] .hero-title .ht-char:nth-child(4n+2){color:#ffca3a;}
[data-theme="ext-photo-vibrant-street"] .hero-title .ht-char:nth-child(4n+3){color:#1982c4;}
[data-theme="ext-photo-vibrant-street"] .hero-title .ht-char:nth-child(4n){color:#8ac926;}
[data-theme="ext-photo-vibrant-street"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:900;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.02em;text-shadow:0 4px 12px #ff595e30;}
[data-theme="ext-photo-vibrant-tropical"] .hero-title .ht-char:nth-child(4n+1){color:#20c997;}
[data-theme="ext-photo-vibrant-tropical"] .hero-title .ht-char:nth-child(4n+2){color:#ffbe0b;}
[data-theme="ext-photo-vibrant-tropical"] .hero-title .ht-char:nth-child(4n+3){color:#ff6b6b;}
[data-theme="ext-photo-vibrant-tropical"] .hero-title .ht-char:nth-child(4n){color:#118ab2;}
[data-theme="ext-photo-vibrant-tropical"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;font-style:italic;text-shadow:0 0 25px #ffbe0b40;}
[data-theme="ext-photo-vibrant-pop"] .hero-title .ht-char:nth-child(4n+1){color:#ff006e;}
[data-theme="ext-photo-vibrant-pop"] .hero-title .ht-char:nth-child(4n+2){color:#fb5607;}
[data-theme="ext-photo-vibrant-pop"] .hero-title .ht-char:nth-child(4n+3){color:#ffbe0b;}
[data-theme="ext-photo-vibrant-pop"] .hero-title .ht-char:nth-child(4n){color:#3a86ff;}
[data-theme="ext-photo-vibrant-pop"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-bottom:2px solid #ffbe0b30;padding-bottom:0.3rem;display:inline-block;}
[data-theme="ext-photo-vibrant-festival"] .hero-title .ht-char:nth-child(4n+1){color:#ff9f1c;}
[data-theme="ext-photo-vibrant-festival"] .hero-title .ht-char:nth-child(4n+2){color:#ff595e;}
[data-theme="ext-photo-vibrant-festival"] .hero-title .ht-char:nth-child(4n+3){color:#ffca3a;}
[data-theme="ext-photo-vibrant-festival"] .hero-title .ht-char:nth-child(4n){color:#8ac926;}
[data-theme="ext-photo-vibrant-festival"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-top:2px solid #8ac92630;padding-top:0.3rem;display:inline-block;}
[data-theme="ext-photo-vibrant-candy"] .hero-title .ht-char:nth-child(4n+1){color:#ffafcc;}
[data-theme="ext-photo-vibrant-candy"] .hero-title .ht-char:nth-child(4n+2){color:#bde0fe;}
[data-theme="ext-photo-vibrant-candy"] .hero-title .ht-char:nth-child(4n+3){color:#a2d2ff;}
[data-theme="ext-photo-vibrant-candy"] .hero-title .ht-char:nth-child(4n){color:#cdb4db;}
[data-theme="ext-photo-vibrant-candy"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;background:#ffafcc08;padding:0.2rem 1rem;border-radius:8px;display:inline-block;}
[data-theme="ext-photo-vibrant-neon"] .hero-title .ht-char:nth-child(4n+1){color:#3a86ff;}
[data-theme="ext-photo-vibrant-neon"] .hero-title .ht-char:nth-child(4n+2){color:#ff006e;}
[data-theme="ext-photo-vibrant-neon"] .hero-title .ht-char:nth-child(4n+3){color:#ffbe0b;}
[data-theme="ext-photo-vibrant-neon"] .hero-title .ht-char:nth-child(4n){color:#8338ec;}
[data-theme="ext-photo-vibrant-neon"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-left:4px solid #ff006e;padding-left:1rem;text-align:left;}
[data-theme="ext-photo-vibrant-citrus"] .hero-title .ht-char:nth-child(4n+1){color:#8ac926;}
[data-theme="ext-photo-vibrant-citrus"] .hero-title .ht-char:nth-child(4n+2){color:#ffca3a;}
[data-theme="ext-photo-vibrant-citrus"] .hero-title .ht-char:nth-child(4n+3){color:#ff9f1c;}
[data-theme="ext-photo-vibrant-citrus"] .hero-title .ht-char:nth-child(4n){color:#1982c4;}
[data-theme="ext-photo-vibrant-citrus"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-right:4px solid #ff9f1c;padding-right:1rem;}
[data-theme="ext-photo-vibrant-bold"] .hero-title .ht-char:nth-child(4n+1){color:#F97316;}
[data-theme="ext-photo-vibrant-bold"] .hero-title .ht-char:nth-child(4n+2){color:#EC4899;}
[data-theme="ext-photo-vibrant-bold"] .hero-title .ht-char:nth-child(4n+3){color:#22C55E;}
[data-theme="ext-photo-vibrant-bold"] .hero-title .ht-char:nth-child(4n){color:#FDE047;}
[data-theme="ext-photo-vibrant-bold"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-top:1px solid #FDE04740;border-bottom:1px solid #FDE04740;padding:0.5rem 0;display:inline-block;}
[data-theme="ext-photo-warm-coffee"] .hero-title .ht-char:nth-child(4n+1){color:#7f5a4a;}
[data-theme="ext-photo-warm-coffee"] .hero-title .ht-char:nth-child(4n+2){color:#b98b73;}
[data-theme="ext-photo-warm-coffee"] .hero-title .ht-char:nth-child(4n+3){color:#5a4030;}
[data-theme="ext-photo-warm-coffee"] .hero-title .ht-char:nth-child(4n){color:#a07060;}
[data-theme="ext-photo-warm-coffee"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-bottom:3px double #7f5a4a40;padding-bottom:0.4rem;display:inline-block;}
[data-theme="ext-photo-warm-amber"] .hero-title .ht-char:nth-child(4n+1){color:#c49b5a;}
[data-theme="ext-photo-warm-amber"] .hero-title .ht-char:nth-child(4n+2){color:#e8c898;}
[data-theme="ext-photo-warm-amber"] .hero-title .ht-char:nth-child(4n+3){color:#a07840;}
[data-theme="ext-photo-warm-amber"] .hero-title .ht-char:nth-child(4n){color:#d4b078;}
[data-theme="ext-photo-warm-amber"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-bottom:2px dotted #e8c89860;padding-bottom:0.4rem;display:inline-block;}
[data-theme="ext-photo-warm-autumn"] .hero-title .ht-char:nth-child(4n+1){color:#c77953;}
[data-theme="ext-photo-warm-autumn"] .hero-title .ht-char:nth-child(4n+2){color:#f0a972;}
[data-theme="ext-photo-warm-autumn"] .hero-title .ht-char:nth-child(4n+3){color:#8a4b3a;}
[data-theme="ext-photo-warm-autumn"] .hero-title .ht-char:nth-child(4n){color:#e09060;}
[data-theme="ext-photo-warm-autumn"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;border-bottom:2px dashed #8a4b3a60;padding-bottom:0.4rem;display:inline-block;}
[data-theme="ext-photo-warm-firelight"] .hero-title .ht-char:nth-child(4n+1){color:#b7605f;}
[data-theme="ext-photo-warm-firelight"] .hero-title .ht-char:nth-child(4n+2){color:#f08a76;}
[data-theme="ext-photo-warm-firelight"] .hero-title .ht-char:nth-child(4n+3){color:#7a4040;}
[data-theme="ext-photo-warm-firelight"] .hero-title .ht-char:nth-child(4n){color:#d07060;}
[data-theme="ext-photo-warm-firelight"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;box-shadow:0 0 30px #d0706020;padding:0.5rem 1.5rem;border-radius:12px;display:inline-block;}
[data-theme="ext-photo-warm-flannel"] .hero-title .ht-char:nth-child(4n+1){color:#7a828c;}
[data-theme="ext-photo-warm-flannel"] .hero-title .ht-char:nth-child(4n+2){color:#9ba1a6;}
[data-theme="ext-photo-warm-flannel"] .hero-title .ht-char:nth-child(4n+3){color:#485463;}
[data-theme="ext-photo-warm-flannel"] .hero-title .ht-char:nth-child(4n){color:#6c7175;}
[data-theme="ext-photo-warm-flannel"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;box-shadow:inset 0 0 30px #7a828c15;padding:0.5rem 1.5rem;border-radius:8px;display:inline-block;}
[data-theme="ext-photo-warm-vanilla"] .hero-title .ht-char:nth-child(4n+1){color:#c8a878;}
[data-theme="ext-photo-warm-vanilla"] .hero-title .ht-char:nth-child(4n+2){color:#e8d8c0;}
[data-theme="ext-photo-warm-vanilla"] .hero-title .ht-char:nth-child(4n+3){color:#a08858;}
[data-theme="ext-photo-warm-vanilla"] .hero-title .ht-char:nth-child(4n){color:#d8c0a0;}
[data-theme="ext-photo-warm-vanilla"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #e8d8c040;filter:drop-shadow(0 4px 12px #e8d8c025);}
[data-theme="ext-photo-warm-hearth"] .hero-title .ht-char:nth-child(4n+1){color:#e27a47;}
[data-theme="ext-photo-warm-hearth"] .hero-title .ht-char:nth-child(4n+2){color:#f6c49b;}
[data-theme="ext-photo-warm-hearth"] .hero-title .ht-char:nth-child(4n+3){color:#b3503a;}
[data-theme="ext-photo-warm-hearth"] .hero-title .ht-char:nth-child(4n){color:#d06840;}
[data-theme="ext-photo-warm-hearth"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #b3503a;text-shadow:0 0 10px #b3503a80,0 0 20px #b3503a60;}
[data-theme="ext-photo-warm-nordic"] .hero-title .ht-char:nth-child(4n+1){color:#6c7175;}
[data-theme="ext-photo-warm-nordic"] .hero-title .ht-char:nth-child(4n+2){color:#9ba1a6;}
[data-theme="ext-photo-warm-nordic"] .hero-title .ht-char:nth-child(4n+3){color:#485463;}
[data-theme="ext-photo-warm-nordic"] .hero-title .ht-char:nth-child(4n){color:#7a8085;}
[data-theme="ext-photo-warm-nordic"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 40px #7a808530,0 0 80px #7a808515;}
[data-theme="ext-photo-sport-arena"] .hero-title .ht-char:nth-child(4n+1){color:#0074ff;}
[data-theme="ext-photo-sport-arena"] .hero-title .ht-char:nth-child(4n+2){color:#ffdd00;}
[data-theme="ext-photo-sport-arena"] .hero-title .ht-char:nth-child(4n+3){color:#00ff85;}
[data-theme="ext-photo-sport-arena"] .hero-title .ht-char:nth-child(4n){color:#002a5e;}
[data-theme="ext-photo-sport-arena"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:-4px 4px 0 #0074ff30;}
[data-theme="ext-photo-sport-champion"] .hero-title .ht-char:nth-child(4n+1){color:#ffd700;}
[data-theme="ext-photo-sport-champion"] .hero-title .ht-char:nth-child(4n+2){color:#ff4b4b;}
[data-theme="ext-photo-sport-champion"] .hero-title .ht-char:nth-child(4n+3){color:#0050b3;}
[data-theme="ext-photo-sport-champion"] .hero-title .ht-char:nth-child(4n){color:#001326;}
[data-theme="ext-photo-sport-champion"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:4px 4px 0 #ff4b4b30;}
[data-theme="ext-photo-sport-action"] .hero-title .ht-char:nth-child(4n+1){color:#ff5b3c;}
[data-theme="ext-photo-sport-action"] .hero-title .ht-char:nth-child(4n+2){color:#ffd1a4;}
[data-theme="ext-photo-sport-action"] .hero-title .ht-char:nth-child(4n+3){color:#c1121f;}
[data-theme="ext-photo-sport-action"] .hero-title .ht-char:nth-child(4n){color:#ff7050;}
[data-theme="ext-photo-sport-action"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:-3px -3px 0 #c1121f40;}
[data-theme="ext-photo-sport-floodlight"] .hero-title .ht-char:nth-child(4n+1){color:#1dd3b0;}
[data-theme="ext-photo-sport-floodlight"] .hero-title .ht-char:nth-child(4n+2){color:#f5f749;}
[data-theme="ext-photo-sport-floodlight"] .hero-title .ht-char:nth-child(4n+3){color:#0b3b5c;}
[data-theme="ext-photo-sport-floodlight"] .hero-title .ht-char:nth-child(4n){color:#00c9a7;}
[data-theme="ext-photo-sport-floodlight"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:3px -3px 0 #00c9a740;}
[data-theme="ext-photo-sport-energy"] .hero-title .ht-char:nth-child(4n+1){color:#ff6392;}
[data-theme="ext-photo-sport-energy"] .hero-title .ht-char:nth-child(4n+2){color:#ffe45e;}
[data-theme="ext-photo-sport-energy"] .hero-title .ht-char:nth-child(4n+3){color:#00f5d4;}
[data-theme="ext-photo-sport-energy"] .hero-title .ht-char:nth-child(4n){color:#00a6fb;}
[data-theme="ext-photo-sport-energy"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 15px #ff639240,2px 0 8px #ff639220,-2px 0 8px #ff639220,0 2px 8px #ff639220,0 -2px 8px #ff639220;}
[data-theme="ext-photo-sport-citrus"] .hero-title .ht-char:nth-child(4n+1){color:#00afb9;}
[data-theme="ext-photo-sport-citrus"] .hero-title .ht-char:nth-child(4n+2){color:#ff6f59;}
[data-theme="ext-photo-sport-citrus"] .hero-title .ht-char:nth-child(4n+3){color:#f9c74f;}
[data-theme="ext-photo-sport-citrus"] .hero-title .ht-char:nth-child(4n){color:#0081a7;}
[data-theme="ext-photo-sport-citrus"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:1px 1px 0 #ff6f5960,2px 2px 0 #ff6f5950,3px 3px 0 #ff6f5940,4px 4px 0 #ff6f5930,5px 5px 0 #ff6f5920,6px 6px 0 #ff6f5910;}
[data-theme="ext-photo-sport-monochrome"] .hero-title .ht-char:nth-child(4n+1){color:#2e2e2e;}
[data-theme="ext-photo-sport-monochrome"] .hero-title .ht-char:nth-child(4n+2){color:#5a5a5a;}
[data-theme="ext-photo-sport-monochrome"] .hero-title .ht-char:nth-child(4n+3){color:#1a1a1a;}
[data-theme="ext-photo-sport-monochrome"] .hero-title .ht-char:nth-child(4n){color:#404040;}
[data-theme="ext-photo-sport-monochrome"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 20px #1a1a1a40;border-bottom:1px solid #1a1a1a40;padding-bottom:0.4rem;display:inline-block;}
[data-theme="ext-photo-sport-drama"] .hero-title .ht-char:nth-child(4n+1){color:#ff5733;}
[data-theme="ext-photo-sport-drama"] .hero-title .ht-char:nth-child(4n+2){color:#ffc300;}
[data-theme="ext-photo-sport-drama"] .hero-title .ht-char:nth-child(4n+3){color:#001d3d;}
[data-theme="ext-photo-sport-drama"] .hero-title .ht-char:nth-child(4n){color:#c1121f;}
[data-theme="ext-photo-sport-drama"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 20px #c1121f40;background:#c1121f05;padding:0.3rem 1.2rem;border-radius:6px;display:inline-block;}
[data-theme="ext-photo-fashion-aurora"] .hero-title .ht-char:nth-child(4n+1){color:#A9E1FF;}
[data-theme="ext-photo-fashion-aurora"] .hero-title .ht-char:nth-child(4n+2){color:#C9F2FF;}
[data-theme="ext-photo-fashion-aurora"] .hero-title .ht-char:nth-child(4n+3){color:#FFD7E8;}
[data-theme="ext-photo-fashion-aurora"] .hero-title .ht-char:nth-child(4n){color:#E8D9FF;}
[data-theme="ext-photo-fashion-aurora"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #A9E1FF30;text-shadow:0 0 15px #A9E1FF30;filter:drop-shadow(0 3px 6px #A9E1FF20);}
[data-theme="ext-photo-fashion-sunset"] .hero-title .ht-char:nth-child(4n+1){color:#FF6D8B;}
[data-theme="ext-photo-fashion-sunset"] .hero-title .ht-char:nth-child(4n+2){color:#FF823A;}
[data-theme="ext-photo-fashion-sunset"] .hero-title .ht-char:nth-child(4n+3){color:#FFD1E4;}
[data-theme="ext-photo-fashion-sunset"] .hero-title .ht-char:nth-child(4n){color:#8030A0;}
[data-theme="ext-photo-fashion-sunset"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #FF823A30;text-shadow:0 0 20px #FF823A25;}
[data-theme="ext-photo-fashion-retro"] .hero-title .ht-char:nth-child(4n+1){color:#1E615A;}
[data-theme="ext-photo-fashion-retro"] .hero-title .ht-char:nth-child(4n+2){color:#FFCF36;}
[data-theme="ext-photo-fashion-retro"] .hero-title .ht-char:nth-child(4n+3){color:#138A7D;}
[data-theme="ext-photo-fashion-retro"] .hero-title .ht-char:nth-child(4n){color:#FFF5C5;}
[data-theme="ext-photo-fashion-retro"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:2px #138A7D60;text-shadow:0 0 10px #138A7D20;}
[data-theme="ext-photo-fashion-rosewood"] .hero-title .ht-char:nth-child(4n+1){color:#B2545B;}
[data-theme="ext-photo-fashion-rosewood"] .hero-title .ht-char:nth-child(4n+2){color:#F7E5E1;}
[data-theme="ext-photo-fashion-rosewood"] .hero-title .ht-char:nth-child(4n+3){color:#60202A;}
[data-theme="ext-photo-fashion-rosewood"] .hero-title .ht-char:nth-child(4n){color:#8F2F42;}
[data-theme="ext-photo-fashion-rosewood"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;text-shadow:0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),0 2px 8px rgba(0,0,0,0.4);margin:1.4rem 0;letter-spacing:0.08em;}
[data-theme="ext-photo-fashion-galaxy"] .hero-title .ht-char:nth-child(4n+1){color:#A885FF;}
[data-theme="ext-photo-fashion-galaxy"] .hero-title .ht-char:nth-child(4n+2){color:#7A3DE2;}
[data-theme="ext-photo-fashion-galaxy"] .hero-title .ht-char:nth-child(4n+3){color:#2F2A68;}
[data-theme="ext-photo-fashion-galaxy"] .hero-title .ht-char:nth-child(4n){color:#3B1C63;}
[data-theme="ext-photo-fashion-galaxy"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.04em;text-shadow:0 2px 6px #A885FF30;}
[data-theme="ext-photo-fashion-amber"] .hero-title .ht-char:nth-child(4n+1){color:#D69A3C;}
[data-theme="ext-photo-fashion-amber"] .hero-title .ht-char:nth-child(4n+2){color:#FFDA9A;}
[data-theme="ext-photo-fashion-amber"] .hero-title .ht-char:nth-child(4n+3){color:#8F6522;}
[data-theme="ext-photo-fashion-amber"] .hero-title .ht-char:nth-child(4n){color:#FFBF5E;}
[data-theme="ext-photo-fashion-amber"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 60px #FFDA9A60,0 0 120px #FFDA9A30;}
[data-theme="ext-photo-fashion-dusty"] .hero-title .ht-char:nth-child(4n+1){color:#C19FA2;}
[data-theme="ext-photo-fashion-dusty"] .hero-title .ht-char:nth-child(4n+2){color:#D4B0B5;}
[data-theme="ext-photo-fashion-dusty"] .hero-title .ht-char:nth-child(4n+3){color:#A08085;}
[data-theme="ext-photo-fashion-dusty"] .hero-title .ht-char:nth-child(4n){color:#BC8E87;}
[data-theme="ext-photo-fashion-dusty"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 1px 2px #A0808520;}
[data-theme="ext-photo-fashion-butter"] .hero-title .ht-char:nth-child(4n+1){color:#F4D06F;}
[data-theme="ext-photo-fashion-butter"] .hero-title .ht-char:nth-child(4n+2){color:#FFE9A0;}
[data-theme="ext-photo-fashion-butter"] .hero-title .ht-char:nth-child(4n+3){color:#D4A830;}
[data-theme="ext-photo-fashion-butter"] .hero-title .ht-char:nth-child(4n){color:#FFCC50;}
[data-theme="ext-photo-fashion-butter"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:1px 1px 0 #FFCC5050,0 0 25px #FFCC5030;}
[data-theme="ext-photo-pure-arctic"] .hero-title .ht-char:nth-child(4n+1){color:#7DB4C7;}
[data-theme="ext-photo-pure-arctic"] .hero-title .ht-char:nth-child(4n+2){color:#A8D9EA;}
[data-theme="ext-photo-pure-arctic"] .hero-title .ht-char:nth-child(4n+3){color:#DFF7FF;}
[data-theme="ext-photo-pure-arctic"] .hero-title .ht-char:nth-child(4n){color:#5A9CB5;}
[data-theme="ext-photo-pure-arctic"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 20px #7DB4C740;border-top:2px solid #7DB4C740;padding-top:0.4rem;display:inline-block;}
[data-theme="ext-photo-pure-ocean"] .hero-title .ht-char:nth-child(4n+1){color:#009EC2;}
[data-theme="ext-photo-pure-ocean"] .hero-title .ht-char:nth-child(4n+2){color:#8AD9F2;}
[data-theme="ext-photo-pure-ocean"] .hero-title .ht-char:nth-child(4n+3){color:#E6FBFF;}
[data-theme="ext-photo-pure-ocean"] .hero-title .ht-char:nth-child(4n){color:#006F87;}
[data-theme="ext-photo-pure-ocean"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:1px 1px 0 #8AD9F260,3px 3px 8px #8AD9F230,5px 5px 15px #8AD9F215;}
[data-theme="ext-photo-pure-mint"] .hero-title .ht-char:nth-child(4n+1){color:#6AA495;}
[data-theme="ext-photo-pure-mint"] .hero-title .ht-char:nth-child(4n+2){color:#9ADBC6;}
[data-theme="ext-photo-pure-mint"] .hero-title .ht-char:nth-child(4n+3){color:#EFFFF8;}
[data-theme="ext-photo-pure-mint"] .hero-title .ht-char:nth-child(4n){color:#4A8878;}
[data-theme="ext-photo-pure-mint"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;-webkit-text-stroke:1px #EFFFF840;text-shadow:2px 2px 0 #EFFFF830,4px 4px 0 #EFFFF815;}
[data-theme="ext-photo-pure-lime"] .hero-title .ht-char:nth-child(4n+1){color:#6FAA00;}
[data-theme="ext-photo-pure-lime"] .hero-title .ht-char:nth-child(4n+2){color:#9ADD00;}
[data-theme="ext-photo-pure-lime"] .hero-title .ht-char:nth-child(4n+3){color:#C6FF5E;}
[data-theme="ext-photo-pure-lime"] .hero-title .ht-char:nth-child(4n){color:#4A7A00;}
[data-theme="ext-photo-pure-lime"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;background:#4A7A0006;padding:0.3rem 2rem;border-radius:999px;display:inline-block;text-shadow:0 0 15px #4A7A0030;}
[data-theme="ext-photo-pure-clean"] .hero-title .ht-char:nth-child(4n+1){color:#80D2AB;}
[data-theme="ext-photo-pure-clean"] .hero-title .ht-char:nth-child(4n+2){color:#BEDDA4;}
[data-theme="ext-photo-pure-clean"] .hero-title .ht-char:nth-child(4n+3){color:#FFF0D2;}
[data-theme="ext-photo-pure-clean"] .hero-title .ht-char:nth-child(4n){color:#45D6E2;}
[data-theme="ext-photo-pure-clean"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;border-top:1px solid #80D2AB40;border-bottom:1px solid #80D2AB40;padding:0.4rem 2rem;display:inline-block;text-shadow:0 0 20px #80D2AB30;}
[data-theme="ext-photo-pure-cloud"] .hero-title .ht-char:nth-child(4n+1){color:#7C7C7C;}
[data-theme="ext-photo-pure-cloud"] .hero-title .ht-char:nth-child(4n+2){color:#B7B7B7;}
[data-theme="ext-photo-pure-cloud"] .hero-title .ht-char:nth-child(4n+3){color:#D9D9D9;}
[data-theme="ext-photo-pure-cloud"] .hero-title .ht-char:nth-child(4n){color:#5A5A5A;}
[data-theme="ext-photo-pure-cloud"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;border-left:4px solid #B7B7B7;border-right:1px solid #B7B7B730;padding:0.3rem 1.5rem;display:inline-block;text-shadow:0 0 15px #B7B7B725;}
[data-theme="ext-photo-pure-modern"] .hero-title .ht-char:nth-child(4n+1){color:#45D6E2;}
[data-theme="ext-photo-pure-modern"] .hero-title .ht-char:nth-child(4n+2){color:#BEDDA4;}
[data-theme="ext-photo-pure-modern"] .hero-title .ht-char:nth-child(4n+3){color:#FFF0D2;}
[data-theme="ext-photo-pure-modern"] .hero-title .ht-char:nth-child(4n){color:#80D2AB;}
[data-theme="ext-photo-pure-modern"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;background:#FFF0D205;-webkit-text-stroke:1px #FFF0D220;padding:0.3rem 1.5rem;border-radius:4px;display:inline-block;text-shadow:0 0 12px #FFF0D220;}
[data-theme="ext-photo-pure-earth"] .hero-title .ht-char:nth-child(4n+1){color:#7E9C76;}
[data-theme="ext-photo-pure-earth"] .hero-title .ht-char:nth-child(4n+2){color:#C18A63;}
[data-theme="ext-photo-pure-earth"] .hero-title .ht-char:nth-child(4n+3){color:#F4EBD2;}
[data-theme="ext-photo-pure-earth"] .hero-title .ht-char:nth-child(4n){color:#4A3F36;}
[data-theme="ext-photo-pure-earth"] .hero-title{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.6rem);font-weight:700;line-height:1.05;margin:1.4rem 0;letter-spacing:-0.01em;text-shadow:0 0 3px #4A3F36,0 0 7px #4A3F36,0 0 12px #4A3F36,0 0 20px #4A3F3680,0 0 40px #4A3F3660,0 0 60px #4A3F3640;}

/* ============================================================
   顶部Logo字体统一化  Header Logo Font Unification
   使顶部导航logo与页脚logo字体一致
   ============================================================ */
[data-theme="ext-bokeh-cool"] .logo-text,[data-theme="ext-bokeh-cool"] .logo-cc,[data-theme="ext-bokeh-cool"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-forest"] .logo-text,[data-theme="ext-bokeh-forest"] .logo-cc,[data-theme="ext-bokeh-forest"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-macro"] .logo-text,[data-theme="ext-bokeh-macro"] .logo-cc,[data-theme="ext-bokeh-macro"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-night"] .logo-text,[data-theme="ext-bokeh-night"] .logo-cc,[data-theme="ext-bokeh-night"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-pastel"] .logo-text,[data-theme="ext-bokeh-pastel"] .logo-cc,[data-theme="ext-bokeh-pastel"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-rainbow"] .logo-text,[data-theme="ext-bokeh-rainbow"] .logo-cc,[data-theme="ext-bokeh-rainbow"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-sunset"] .logo-text,[data-theme="ext-bokeh-sunset"] .logo-cc,[data-theme="ext-bokeh-sunset"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-bokeh-warm"] .logo-text,[data-theme="ext-bokeh-warm"] .logo-cc,[data-theme="ext-bokeh-warm"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-girl-bow"] .logo-text,[data-theme="ext-girl-bow"] .logo-cc,[data-theme="ext-girl-bow"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-girl-cherry"] .logo-text,[data-theme="ext-girl-cherry"] .logo-cc,[data-theme="ext-girl-cherry"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-girl-cotton"] .logo-text,[data-theme="ext-girl-cotton"] .logo-cc,[data-theme="ext-girl-cotton"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-girl-strawberry"] .logo-text,[data-theme="ext-girl-strawberry"] .logo-cc,[data-theme="ext-girl-strawberry"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-lady-lace"] .logo-text,[data-theme="ext-lady-lace"] .logo-cc,[data-theme="ext-lady-lace"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-lady-pearl"] .logo-text,[data-theme="ext-lady-pearl"] .logo-cc,[data-theme="ext-lady-pearl"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-lady-rose"] .logo-text,[data-theme="ext-lady-rose"] .logo-cc,[data-theme="ext-lady-rose"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-lady-velvet"] .logo-text,[data-theme="ext-lady-velvet"] .logo-cc,[data-theme="ext-lady-velvet"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-aurora"] .logo-text,[data-theme="ext-light-aurora"] .logo-cc,[data-theme="ext-light-aurora"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-cloud"] .logo-text,[data-theme="ext-light-cloud"] .logo-cc,[data-theme="ext-light-cloud"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-coral"] .logo-text,[data-theme="ext-light-coral"] .logo-cc,[data-theme="ext-light-coral"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-berry"] .logo-text,[data-theme="ext-light-girl-berry"] .logo-cc,[data-theme="ext-light-girl-berry"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-bubble"] .logo-text,[data-theme="ext-light-girl-bubble"] .logo-cc,[data-theme="ext-light-girl-bubble"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-cotton"] .logo-text,[data-theme="ext-light-girl-cotton"] .logo-cc,[data-theme="ext-light-girl-cotton"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-icing"] .logo-text,[data-theme="ext-light-girl-icing"] .logo-cc,[data-theme="ext-light-girl-icing"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-lemon"] .logo-text,[data-theme="ext-light-girl-lemon"] .logo-cc,[data-theme="ext-light-girl-lemon"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-mango"] .logo-text,[data-theme="ext-light-girl-mango"] .logo-cc,[data-theme="ext-light-girl-mango"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-peach"] .logo-text,[data-theme="ext-light-girl-peach"] .logo-cc,[data-theme="ext-light-girl-peach"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-girl-sakura"] .logo-text,[data-theme="ext-light-girl-sakura"] .logo-cc,[data-theme="ext-light-girl-sakura"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-honey"] .logo-text,[data-theme="ext-light-honey"] .logo-cc,[data-theme="ext-light-honey"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-amber"] .logo-text,[data-theme="ext-light-lady-amber"] .logo-cc,[data-theme="ext-light-lady-amber"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-blush"] .logo-text,[data-theme="ext-light-lady-blush"] .logo-cc,[data-theme="ext-light-lady-blush"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-champagne"] .logo-text,[data-theme="ext-light-lady-champagne"] .logo-cc,[data-theme="ext-light-lady-champagne"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-cream"] .logo-text,[data-theme="ext-light-lady-cream"] .logo-cc,[data-theme="ext-light-lady-cream"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-jade"] .logo-text,[data-theme="ext-light-lady-jade"] .logo-cc,[data-theme="ext-light-lady-jade"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-mauve"] .logo-text,[data-theme="ext-light-lady-mauve"] .logo-cc,[data-theme="ext-light-lady-mauve"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-rose"] .logo-text,[data-theme="ext-light-lady-rose"] .logo-cc,[data-theme="ext-light-lady-rose"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lady-silk"] .logo-text,[data-theme="ext-light-lady-silk"] .logo-cc,[data-theme="ext-light-lady-silk"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-lavender"] .logo-text,[data-theme="ext-light-lavender"] .logo-cc,[data-theme="ext-light-lavender"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-mint"] .logo-text,[data-theme="ext-light-mint"] .logo-cc,[data-theme="ext-light-mint"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pearl"] .logo-text,[data-theme="ext-light-pearl"] .logo-cc,[data-theme="ext-light-pearl"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-petal"] .logo-text,[data-theme="ext-light-petal"] .logo-cc,[data-theme="ext-light-petal"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pure-aqua"] .logo-text,[data-theme="ext-light-pure-aqua"] .logo-cc,[data-theme="ext-light-pure-aqua"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pure-breeze"] .logo-text,[data-theme="ext-light-pure-breeze"] .logo-cc,[data-theme="ext-light-pure-breeze"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pure-dawn"] .logo-text,[data-theme="ext-light-pure-dawn"] .logo-cc,[data-theme="ext-light-pure-dawn"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pure-ivory"] .logo-text,[data-theme="ext-light-pure-ivory"] .logo-cc,[data-theme="ext-light-pure-ivory"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pure-lily"] .logo-text,[data-theme="ext-light-pure-lily"] .logo-cc,[data-theme="ext-light-pure-lily"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-pure-snow"] .logo-text,[data-theme="ext-light-pure-snow"] .logo-cc,[data-theme="ext-light-pure-snow"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-sage"] .logo-text,[data-theme="ext-light-sage"] .logo-cc,[data-theme="ext-light-sage"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-sky"] .logo-text,[data-theme="ext-light-sky"] .logo-cc,[data-theme="ext-light-sky"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-grape"] .logo-text,[data-theme="ext-light-youth-grape"] .logo-cc,[data-theme="ext-light-youth-grape"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-grass"] .logo-text,[data-theme="ext-light-youth-grass"] .logo-cc,[data-theme="ext-light-youth-grass"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-lake"] .logo-text,[data-theme="ext-light-youth-lake"] .logo-cc,[data-theme="ext-light-youth-lake"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-orange"] .logo-text,[data-theme="ext-light-youth-orange"] .logo-cc,[data-theme="ext-light-youth-orange"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-rainbow"] .logo-text,[data-theme="ext-light-youth-rainbow"] .logo-cc,[data-theme="ext-light-youth-rainbow"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-sky"] .logo-text,[data-theme="ext-light-youth-sky"] .logo-cc,[data-theme="ext-light-youth-sky"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-youth-sun"] .logo-text,[data-theme="ext-light-youth-sun"] .logo-cc,[data-theme="ext-light-youth-sun"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-light-yuth-coral"] .logo-text,[data-theme="ext-light-yuth-coral"] .logo-cc,[data-theme="ext-light-yuth-coral"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-bark"] .logo-text,[data-theme="ext-organic-bark"] .logo-cc,[data-theme="ext-organic-bark"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-bloom"] .logo-text,[data-theme="ext-organic-bloom"] .logo-cc,[data-theme="ext-organic-bloom"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-clay"] .logo-text,[data-theme="ext-organic-clay"] .logo-cc,[data-theme="ext-organic-clay"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-leaf"] .logo-text,[data-theme="ext-organic-leaf"] .logo-cc,[data-theme="ext-organic-leaf"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-moss"] .logo-text,[data-theme="ext-organic-moss"] .logo-cc,[data-theme="ext-organic-moss"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-pebble"] .logo-text,[data-theme="ext-organic-pebble"] .logo-cc,[data-theme="ext-organic-pebble"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-sage"] .logo-text,[data-theme="ext-organic-sage"] .logo-cc,[data-theme="ext-organic-sage"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-organic-sand"] .logo-text,[data-theme="ext-organic-sand"] .logo-cc,[data-theme="ext-organic-sand"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-amber"] .logo-text,[data-theme="ext-photo-fashion-amber"] .logo-cc,[data-theme="ext-photo-fashion-amber"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-aurora"] .logo-text,[data-theme="ext-photo-fashion-aurora"] .logo-cc,[data-theme="ext-photo-fashion-aurora"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-butter"] .logo-text,[data-theme="ext-photo-fashion-butter"] .logo-cc,[data-theme="ext-photo-fashion-butter"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-dusty"] .logo-text,[data-theme="ext-photo-fashion-dusty"] .logo-cc,[data-theme="ext-photo-fashion-dusty"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-galaxy"] .logo-text,[data-theme="ext-photo-fashion-galaxy"] .logo-cc,[data-theme="ext-photo-fashion-galaxy"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-retro"] .logo-text,[data-theme="ext-photo-fashion-retro"] .logo-cc,[data-theme="ext-photo-fashion-retro"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-rosewood"] .logo-text,[data-theme="ext-photo-fashion-rosewood"] .logo-cc,[data-theme="ext-photo-fashion-rosewood"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-fashion-sunset"] .logo-text,[data-theme="ext-photo-fashion-sunset"] .logo-cc,[data-theme="ext-photo-fashion-sunset"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-arctic"] .logo-text,[data-theme="ext-photo-pure-arctic"] .logo-cc,[data-theme="ext-photo-pure-arctic"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-clean"] .logo-text,[data-theme="ext-photo-pure-clean"] .logo-cc,[data-theme="ext-photo-pure-clean"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-cloud"] .logo-text,[data-theme="ext-photo-pure-cloud"] .logo-cc,[data-theme="ext-photo-pure-cloud"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-earth"] .logo-text,[data-theme="ext-photo-pure-earth"] .logo-cc,[data-theme="ext-photo-pure-earth"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-lime"] .logo-text,[data-theme="ext-photo-pure-lime"] .logo-cc,[data-theme="ext-photo-pure-lime"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-mint"] .logo-text,[data-theme="ext-photo-pure-mint"] .logo-cc,[data-theme="ext-photo-pure-mint"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-modern"] .logo-text,[data-theme="ext-photo-pure-modern"] .logo-cc,[data-theme="ext-photo-pure-modern"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-pure-ocean"] .logo-text,[data-theme="ext-photo-pure-ocean"] .logo-cc,[data-theme="ext-photo-pure-ocean"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-action"] .logo-text,[data-theme="ext-photo-sport-action"] .logo-cc,[data-theme="ext-photo-sport-action"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-arena"] .logo-text,[data-theme="ext-photo-sport-arena"] .logo-cc,[data-theme="ext-photo-sport-arena"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-champion"] .logo-text,[data-theme="ext-photo-sport-champion"] .logo-cc,[data-theme="ext-photo-sport-champion"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-citrus"] .logo-text,[data-theme="ext-photo-sport-citrus"] .logo-cc,[data-theme="ext-photo-sport-citrus"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-drama"] .logo-text,[data-theme="ext-photo-sport-drama"] .logo-cc,[data-theme="ext-photo-sport-drama"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-energy"] .logo-text,[data-theme="ext-photo-sport-energy"] .logo-cc,[data-theme="ext-photo-sport-energy"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-floodlight"] .logo-text,[data-theme="ext-photo-sport-floodlight"] .logo-cc,[data-theme="ext-photo-sport-floodlight"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-sport-monochrome"] .logo-text,[data-theme="ext-photo-sport-monochrome"] .logo-cc,[data-theme="ext-photo-sport-monochrome"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-bold"] .logo-text,[data-theme="ext-photo-vibrant-bold"] .logo-cc,[data-theme="ext-photo-vibrant-bold"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-candy"] .logo-text,[data-theme="ext-photo-vibrant-candy"] .logo-cc,[data-theme="ext-photo-vibrant-candy"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-citrus"] .logo-text,[data-theme="ext-photo-vibrant-citrus"] .logo-cc,[data-theme="ext-photo-vibrant-citrus"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-festival"] .logo-text,[data-theme="ext-photo-vibrant-festival"] .logo-cc,[data-theme="ext-photo-vibrant-festival"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-neon"] .logo-text,[data-theme="ext-photo-vibrant-neon"] .logo-cc,[data-theme="ext-photo-vibrant-neon"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-pop"] .logo-text,[data-theme="ext-photo-vibrant-pop"] .logo-cc,[data-theme="ext-photo-vibrant-pop"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-street"] .logo-text,[data-theme="ext-photo-vibrant-street"] .logo-cc,[data-theme="ext-photo-vibrant-street"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-vibrant-tropical"] .logo-text,[data-theme="ext-photo-vibrant-tropical"] .logo-cc,[data-theme="ext-photo-vibrant-tropical"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-amber"] .logo-text,[data-theme="ext-photo-warm-amber"] .logo-cc,[data-theme="ext-photo-warm-amber"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-autumn"] .logo-text,[data-theme="ext-photo-warm-autumn"] .logo-cc,[data-theme="ext-photo-warm-autumn"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-coffee"] .logo-text,[data-theme="ext-photo-warm-coffee"] .logo-cc,[data-theme="ext-photo-warm-coffee"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-firelight"] .logo-text,[data-theme="ext-photo-warm-firelight"] .logo-cc,[data-theme="ext-photo-warm-firelight"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-flannel"] .logo-text,[data-theme="ext-photo-warm-flannel"] .logo-cc,[data-theme="ext-photo-warm-flannel"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-hearth"] .logo-text,[data-theme="ext-photo-warm-hearth"] .logo-cc,[data-theme="ext-photo-warm-hearth"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-nordic"] .logo-text,[data-theme="ext-photo-warm-nordic"] .logo-cc,[data-theme="ext-photo-warm-nordic"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-photo-warm-vanilla"] .logo-text,[data-theme="ext-photo-warm-vanilla"] .logo-cc,[data-theme="ext-photo-warm-vanilla"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-pure-dew"] .logo-text,[data-theme="ext-pure-dew"] .logo-cc,[data-theme="ext-pure-dew"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-pure-lily"] .logo-text,[data-theme="ext-pure-lily"] .logo-cc,[data-theme="ext-pure-lily"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-pure-mint"] .logo-text,[data-theme="ext-pure-mint"] .logo-cc,[data-theme="ext-pure-mint"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-pure-snow"] .logo-text,[data-theme="ext-pure-snow"] .logo-cc,[data-theme="ext-pure-snow"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-wild-leopard"] .logo-text,[data-theme="ext-wild-leopard"] .logo-cc,[data-theme="ext-wild-leopard"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-wild-neon"] .logo-text,[data-theme="ext-wild-neon"] .logo-cc,[data-theme="ext-wild-neon"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-wild-rose"] .logo-text,[data-theme="ext-wild-rose"] .logo-cc,[data-theme="ext-wild-rose"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-wild-stud"] .logo-text,[data-theme="ext-wild-stud"] .logo-cc,[data-theme="ext-wild-stud"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-youth-campus"] .logo-text,[data-theme="ext-youth-campus"] .logo-cc,[data-theme="ext-youth-campus"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-youth-star"] .logo-text,[data-theme="ext-youth-star"] .logo-cc,[data-theme="ext-youth-star"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-youth-summer"] .logo-text,[data-theme="ext-youth-summer"] .logo-cc,[data-theme="ext-youth-summer"] .logo-dot{font-family:var(--font-display);}
[data-theme="ext-youth-wind"] .logo-text,[data-theme="ext-youth-wind"] .logo-cc,[data-theme="ext-youth-wind"] .logo-dot{font-family:var(--font-display);}
