﻿/* ══════════════════════════════════════════
   ROOT & RESET
══════════════════════════════════════════ */
:root {
  --bg-base:   #070b12;
  --bg-mid:    #090e18;
  --glass-1:   rgba(255,255,255,0.04);
  --glass-2:   rgba(255,255,255,0.08);
  --glass-3:   rgba(255,255,255,0.12);
  --glass-4:   rgba(255,255,255,0.16);
  --border-1:  rgba(255,255,255,0.07);
  --border-2:  rgba(255,255,255,0.16);
  --border-3:  rgba(255,255,255,0.24);
  --border-a:  rgba(130,195,255,0.30);
  --a1: #7ec8ff;
  --a2: #a78bfa;
  --a3: #34d4a8;
  --a4: #fbbf24;
  --a5: #ff6b6b;
  --a6: #f472b6;
  --t0: rgba(255,255,255,0.97);
  --t1: rgba(255,255,255,0.88);
  --t2: rgba(255,255,255,0.55);
  --t3: rgba(255,255,255,0.28);
  --t4: rgba(255,255,255,0.12);
  --glow-a1: rgba(126,200,255,0.22);
  --glow-a2: rgba(167,139,250,0.18);
  --glow-a3: rgba(52,212,168,0.15);
  --f-heading: 'Dreamscape', 'Outfit', 'Noto Sans TC', sans-serif;
  --f-display: 'Outfit', 'Noto Sans TC', sans-serif;
  --f-body:    'Noto Sans TC', 'PingFang TC', 'Helvetica Neue', Arial, sans-serif;
  --f-mono:    'Space Mono', 'Noto Sans TC', 'Courier New', monospace;
  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 24px;
  --r-xl: 32px;
  --z-bg: 0;
  --z-content: 1;
  --z-section: 2;
  --z-sticky: 10;
  --z-nav: 100;
  --z-dropdown: 200;
  --z-overlay: 500;
  --z-modal: 600;
  --z-tooltip: 700;
  --z-cursor: 900;
}

/* ══════════════════════════════════════════
   LIGHT MODE — Variable Overrides
══════════════════════════════════════════ */
html[data-mode="light"] {
  --bg-base:   #f4f6f9;
  --bg-mid:    #eaecf1;
  --glass-1:   rgba(255,255,255,0.70);
  --glass-2:   rgba(255,255,255,0.80);
  --glass-3:   rgba(255,255,255,0.90);
  --glass-4:   rgba(255,255,255,0.95);
  --border-1:  rgba(0,0,0,0.08);
  --border-2:  rgba(0,0,0,0.14);
  --border-3:  rgba(0,0,0,0.22);
  --border-a:  rgba(37,99,235,0.30);
  --a1: #1d4ed8;
  --a2: #6d28d9;
  --a3: #047857;
  --a4: #b45309;
  --a5: #b91c1c;
  --a6: #be185d;
  --t0: #0f172a;
  --t1: #1e293b;
  --t2: #475569;
  --t3: #94a3b8;
  --t4: #cbd5e1;
  --glow-a1: rgba(29,78,216,0.10);
  --glow-a2: rgba(109,40,217,0.08);
  --glow-a3: rgba(4,120,87,0.06);
}

/* ── Light Mode Component Overrides ── */
html[data-mode="light"] body { background: #f4f6f9; color: #1e293b; }
html[data-mode="light"] body::after { display: none; }

/* ── Nav ── */
html[data-mode="light"] nav {
  background: rgba(244,246,249,0.85) !important;
  backdrop-filter: blur(20px) saturate(120%) !important;
  border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}
html[data-mode="light"] nav.scrolled { background: rgba(244,246,249,0.95) !important; }
html[data-mode="light"] .nav-links a { color: #475569; }
html[data-mode="light"] .nav-links a:hover,
html[data-mode="light"] .nav-links a.active { color: #0f172a; background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.08); }
html[data-mode="light"] .nav-links a::after { background: linear-gradient(90deg, var(--a1), var(--a2)); }
html[data-mode="light"] .nav-wordmark { color: #0f172a; }
html[data-mode="light"] .nav-wordmark em { color: #94a3b8; }
html[data-mode="light"] .nav-more-menu { background: rgba(255,255,255,0.98) !important; border-color: rgba(0,0,0,0.1); box-shadow: 0 12px 40px rgba(0,0,0,0.12); }
html[data-mode="light"] .nav-more-menu a { color: #1e293b; }
html[data-mode="light"] .nav-more-menu a:hover { background: rgba(0,0,0,0.04); }
html[data-mode="light"] .mobile-drawer { background: #f4f6f9 !important; }
html[data-mode="light"] .toc-rail { background: rgba(255,255,255,0.8); border-color: rgba(0,0,0,0.08); }
html[data-mode="light"] .toc-dot { background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.12); }
html[data-mode="light"] .toc-dot.active { background: var(--a1); border-color: var(--a1); }

/* ── Background layers — hide in light mode ── */
html[data-mode="light"] #bg-canvas,
html[data-mode="light"] #bg-aurora,
html[data-mode="light"] #bg-tint { display: none !important; }

/* ── Glass / Cards — solid white with subtle shadow ── */
html[data-mode="light"] .glass,
html[data-mode="light"] .glass-2 { background: rgba(255,255,255,0.85) !important; backdrop-filter: blur(8px) !important; }
html[data-mode="light"] .glass-card {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
}
html[data-mode="light"] .glass-card:hover {
  background: #ffffff !important;
  border-color: rgba(29,78,216,0.2) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08), 0 0 0 1px rgba(29,78,216,0.08);
}
html[data-mode="light"] .glass-card::after {
  background: linear-gradient(105deg, transparent 40%, rgba(29,78,216,0.03) 45%, rgba(29,78,216,0.06) 50%, rgba(29,78,216,0.03) 55%, transparent 60%) !important;
}

html[data-mode="light"] .stat-card,
html[data-mode="light"] .r-card,
html[data-mode="light"] .news-card,
html[data-mode="light"] .equip-card,
html[data-mode="light"] .tl-card,
html[data-mode="light"] .course-card {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  backdrop-filter: none !important;
}
html[data-mode="light"] .stat-card:hover,
html[data-mode="light"] .r-card:hover,
html[data-mode="light"] .news-card:hover,
html[data-mode="light"] .equip-card:hover {
  background: #ffffff !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  border-color: rgba(29,78,216,0.15) !important;
}
html[data-mode="light"] .r-card::after {
  background: linear-gradient(105deg, transparent 40%, rgba(29,78,216,0.02) 45%, rgba(29,78,216,0.05) 50%, rgba(29,78,216,0.02) 55%, transparent 60%) !important;
}

/* ── Stat numbers — keep vivid ── */
html[data-mode="light"] .stat-card:nth-child(1) .stat-n { color: #1d4ed8; }
html[data-mode="light"] .stat-card:nth-child(2) .stat-n { color: #6d28d9; }
html[data-mode="light"] .stat-card:nth-child(3) .stat-n { color: #047857; }
html[data-mode="light"] .stat-card:nth-child(4) .stat-n { color: #b45309; }
html[data-mode="light"] .stat-card::before { height: 2px; opacity: 1; }

/* ── Profile card ── */
html[data-mode="light"] .profile-card {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
html[data-mode="light"] .profile-card::before {
  background: linear-gradient(90deg, transparent, rgba(29,78,216,0.25), rgba(109,40,217,0.2), transparent);
}
html[data-mode="light"] .profile-name { color: #0f172a; }
html[data-mode="light"] .profile-role { color: #1d4ed8; }
html[data-mode="light"] .avatar {
  background: linear-gradient(135deg, rgba(29,78,216,0.2), rgba(109,40,217,0.2));
  border-color: rgba(0,0,0,0.08);
  color: #1d4ed8;
}

/* ── Hero ── */
html[data-mode="light"] .hero::after { background: linear-gradient(to top, #f4f6f9, transparent) !important; }
html[data-mode="light"] .hero-eyebrow { color: #1d4ed8 !important; }
html[data-mode="light"] .hero-eyebrow .pulse-dot { background: #047857; box-shadow: 0 0 0 0 rgba(4,120,87,0.5); }
html[data-mode="light"] .hero-h1 { color: #0f172a; }
html[data-mode="light"] .hero-h1 .line2 { color: #94a3b8 !important; }
html[data-mode="light"] .grad-text {
  background: linear-gradient(110deg, #1d4ed8 0%, #6d28d9 45%, #047857 100%) !important;
  -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; background-clip: text !important;
}
html[data-mode="light"] .hero-fullname { color: #475569; }
html[data-mode="light"] .hero-fullname-zh { color: #475569; }
html[data-mode="light"] .hero-desc { color: #475569; }
html[data-mode="light"] .hero-proof-num {
  background: linear-gradient(110deg, #1d4ed8, #6d28d9) !important;
  -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important;
}
html[data-mode="light"] .hero-proof-label { color: #94a3b8; }

/* ── Tags ── */
html[data-mode="light"] .tag-pill { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.1); color: #475569; }
html[data-mode="light"] .tag-pill:hover { background: rgba(29,78,216,0.06); border-color: rgba(29,78,216,0.2); color: #1e293b; }

/* ── Buttons ── */
html[data-mode="light"] .btn-primary {
  background: linear-gradient(135deg, #1d4ed8, #6d28d9) !important;
  border: 1px solid transparent !important;
  color: #ffffff !important;
}
html[data-mode="light"] .btn-primary::before { background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 60%); }
html[data-mode="light"] .btn-primary:hover {
  box-shadow: 0 8px 28px rgba(29,78,216,0.3) !important;
}
html[data-mode="light"] .btn-secondary {
  background: #ffffff !important;
  border-color: rgba(0,0,0,0.15) !important;
  color: #1e293b !important;
}
html[data-mode="light"] .btn-secondary:hover { background: #f8fafc !important; border-color: rgba(29,78,216,0.25) !important; }
html[data-mode="light"] .nav-cta {
  background: linear-gradient(135deg, #1d4ed8, #6d28d9) !important;
  border: 1px solid transparent !important;
  color: #ffffff !important;
}
html[data-mode="light"] .nav-cta:hover { box-shadow: 0 4px 16px rgba(29,78,216,0.25); }

/* ── Ticker ── */
html[data-mode="light"] .ticker-wrap {
  background: #ffffff !important;
  border-color: rgba(0,0,0,0.06) !important;
}
html[data-mode="light"] .ticker-label { color: #047857; }
html[data-mode="light"] .tk { color: #475569; border-left-color: rgba(0,0,0,0.06); }

/* ── Section labels & headings ── */
html[data-mode="light"] .sec-label { color: #1d4ed8; }
html[data-mode="light"] .sec-label::before { background: linear-gradient(90deg, #1d4ed8, #6d28d9, transparent); }
html[data-mode="light"] .sec-h2 { color: #0f172a; }
html[data-mode="light"] .sec-sub { color: #94a3b8; }

/* ── About / Research text ── */
html[data-mode="light"] .about-text { color: #334155; }
html[data-mode="light"] .about-text .mono { color: #047857; }
html[data-mode="light"] .about-callout { background: rgba(29,78,216,0.04); border-left-color: #1d4ed8; color: #475569; }
html[data-mode="light"] .r-num { color: inherit; }
html[data-mode="light"] .r-card h3 { color: #0f172a; }
html[data-mode="light"] .r-card h3 small { color: #94a3b8; }
html[data-mode="light"] .r-card p { color: #475569; }

/* ── Arch panel ── */
html[data-mode="light"] .arch-panel-wrap { background: #ffffff !important; border-color: rgba(0,0,0,0.08) !important; }
html[data-mode="light"] .a-panel { background: rgba(0,0,0,0.02) !important; }
html[data-mode="light"] .arch-btn { background: rgba(0,0,0,0.04); color: #475569; border-color: rgba(0,0,0,0.08); }
html[data-mode="light"] .arch-btn.active { background: rgba(29,78,216,0.08); color: #1d4ed8; border-color: rgba(29,78,216,0.2); }

/* ── XR sidebar ── */
html[data-mode="light"] .xr-sidebar { background: #ffffff !important; border-color: rgba(0,0,0,0.08) !important; }
html[data-mode="light"] .xr-tab { background: rgba(0,0,0,0.04); color: #475569; }
html[data-mode="light"] .xr-tab.active { background: rgba(29,78,216,0.08); color: #1d4ed8; border-color: rgba(29,78,216,0.25); }

/* ── Publications ── */
html[data-mode="light"] .pub-item { border-color: rgba(0,0,0,0.06) !important; }
html[data-mode="light"] .pub-item:hover { background: rgba(0,0,0,0.02); }
html[data-mode="light"] .pub-t { color: #0f172a; }
html[data-mode="light"] .pub-j { color: #64748b; }
html[data-mode="light"] .pub-yr { color: #1d4ed8; }
html[data-mode="light"] .badge { background: #f8fafc; color: inherit; }
html[data-mode="light"] .badge.scie { border-color: rgba(29,78,216,0.3); color: #1d4ed8; }
html[data-mode="light"] .badge.ssci { border-color: rgba(109,40,217,0.3); color: #6d28d9; }
html[data-mode="light"] .badge.ei { border-color: rgba(4,120,87,0.3); color: #047857; }
html[data-mode="light"] .pub-filter-btn { background: rgba(0,0,0,0.04); color: #475569; border-color: rgba(0,0,0,0.08); }
html[data-mode="light"] .pub-filter-btn.active { background: rgba(29,78,216,0.08); color: #1d4ed8; border-color: rgba(29,78,216,0.2); }

/* ── Awards timeline ── */
html[data-mode="light"] .tl-year { color: #1d4ed8; }
html[data-mode="light"] .tl-dot { border-color: #1d4ed8; }
html[data-mode="light"] .tl-cn { color: #0f172a; }
html[data-mode="light"] .tl-cn small { color: #94a3b8; }
html[data-mode="light"] .tl-cl { color: #475569; }
html[data-mode="light"] .stu-highlight { background: rgba(4,120,87,0.05) !important; border-color: rgba(4,120,87,0.15) !important; }
html[data-mode="light"] .stu-num { color: #047857; }
html[data-mode="light"] .stu-txt { color: #334155; }
html[data-mode="light"] .div-line { border-color: rgba(0,0,0,0.08); }
html[data-mode="light"] .div-line span { background: #f4f6f9; color: #94a3b8; }

/* ── News ── */
html[data-mode="light"] .news-t { color: #0f172a; }
html[data-mode="light"] .news-t small { color: #94a3b8; }
html[data-mode="light"] .news-date { color: #94a3b8; }
html[data-mode="light"] .news-tag { color: inherit; }

/* ── Equipment ── */
html[data-mode="light"] .equip-name { color: #0f172a; }
html[data-mode="light"] .equip-spec { color: #475569; }

/* ── Course ── */
html[data-mode="light"] .course-name { color: #0f172a; }
html[data-mode="light"] .course-name-en { color: #94a3b8; }

/* ── Contact ── */
html[data-mode="light"] .ci-l { color: #94a3b8; }
html[data-mode="light"] .ci-v { color: #1e293b; }
html[data-mode="light"] .ci-v a { color: #1d4ed8; }
html[data-mode="light"] .cta-card { background: #ffffff !important; border-color: rgba(0,0,0,0.08) !important; }
html[data-mode="light"] .cta-card .en-note { color: #94a3b8; }

/* ── Footer ── */
html[data-mode="light"] footer { background: #eaecf1 !important; border-top: 1px solid rgba(0,0,0,0.06); }
html[data-mode="light"] .f-left, html[data-mode="light"] .f-right { color: #64748b; }

/* ── Sitemap ── */
html[data-mode="light"] .sm-col h4 { color: #1d4ed8; border-bottom-color: rgba(0,0,0,0.06); }
html[data-mode="light"] .sm-col li { color: #64748b; }
html[data-mode="light"] .sm-col a { color: #475569; }

/* ── Tweaks Panel ── */
html[data-mode="light"] #tweaksPanel { background: #ffffff !important; border: 1px solid rgba(0,0,0,0.1) !important; box-shadow: 0 8px 32px rgba(0,0,0,0.1); }
html[data-mode="light"] .tw-head { color: #0f172a; }
html[data-mode="light"] .tw-lbl { color: #64748b; }
html[data-mode="light"] .tw-opt { background: #f8fafc; color: #475569; border-color: rgba(0,0,0,0.1); }
html[data-mode="light"] .tw-opt.on { background: rgba(29,78,216,0.08); color: #1d4ed8; border-color: rgba(29,78,216,0.3); }

/* ── Scroll bar ── */
html[data-mode="light"] #scroll-progress-fill { box-shadow: 0 0 6px rgba(29,78,216,0.3); }

/* ── Scroll cue ── */
html[data-mode="light"] .scroll-cue span { color: #94a3b8; }

/* ── Section alternating backgrounds ── */
html[data-mode="light"] section[style*="background"] { background: rgba(0,0,0,0.015) !important; border-color: rgba(0,0,0,0.05) !important; }

/* ── Gradient divider ── */
html[data-mode="light"] .sec-divider { opacity: 0.4; }

/* ── Status pills ── */
html[data-mode="light"] .status-pill { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.08); }

/* ── Gallery tabs ── */
html[data-mode="light"] .gal-tab { background: rgba(0,0,0,0.04); color: #475569; border-color: rgba(0,0,0,0.08); }
html[data-mode="light"] .gal-tab.active { background: rgba(29,78,216,0.08); color: #1d4ed8; border-color: rgba(29,78,216,0.2); }

/* ── Info rows ── */
html[data-mode="light"] .info-row { color: #475569; }
html[data-mode="light"] .info-row .lbl { color: #94a3b8; }
html[data-mode="light"] .info-row a { color: #1d4ed8; }

/* ── Lang pill ── */
html[data-mode="light"] .lang-pill { border-color: rgba(0,0,0,0.12); background: rgba(0,0,0,0.03); }
html[data-mode="light"] .lang-btn { color: #94a3b8; }
html[data-mode="light"] .lang-btn.on { background: rgba(29,78,216,0.08); color: #1d4ed8; }

/* ── Practice section ── */
html[data-mode="light"] .prac-card { background: #ffffff !important; border-color: rgba(0,0,0,0.08) !important; }

/* ── Back to top ── */
html[data-mode="light"] #backToTop { background: #ffffff !important; border-color: rgba(0,0,0,0.12) !important; color: #1d4ed8 !important; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }

/* ── Focus ring light mode ── */
html[data-mode="light"] :focus-visible { outline-color: #1d4ed8; }
html[data-mode="light"] button:focus-visible, html[data-mode="light"] a:focus-visible { box-shadow: 0 0 0 4px rgba(29,78,216,0.15); }

/* ── Mode Toggle Button ── */
.mode-toggle {
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--border-2); background: var(--glass-1);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all .25s; color: var(--t2); padding: 0;
  min-height: 36px;
}
.mode-toggle:hover { background: var(--glass-3); color: var(--t0); border-color: var(--border-a); }
.mode-toggle .icon-sun { display: none; }
.mode-toggle .icon-moon { display: block; }
html[data-mode="light"] .mode-toggle .icon-sun { display: block; }
html[data-mode="light"] .mode-toggle .icon-moon { display: none; }

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: rgba(126,200,255,0.15); }
a, button, [role='button'] { -webkit-tap-highlight-color: rgba(126,200,255,0.15); touch-action: manipulation; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg-base);
  color: var(--t1);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.75;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-synthesis: none;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* CJK text safety — prevent long Chinese strings from overflowing */
h1, h2, h3, h4, p, li, td, th, .news-t, .news-b, .pg-title,
.proj-title, .proj-body, .course-desc, .sec-sub, .hero-desc,
.r-card p, .r-card h3, .tl-cn, .stu-txt, .ci-v, .cta-card p {
  overflow-wrap: break-word;
  word-break: break-word;
}
/* CJK font override — only when Chinese is active */
:lang(zh-Hant), :lang(zh-TW), :lang(zh) {
  font-family: 'Noto Sans TC', 'PingFang TC', 'Helvetica Neue', Arial, sans-serif !important;
}

/* ══════════════════════════════════════════
   CUSTOM CURSOR
══════════════════════════════════════════ */
#cursor-outer {
  position: fixed; z-index: 9999; pointer-events: none;
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid rgba(126,200,255,0.5);
  transform: translate(-50%,-50%);
  transition: width .3s, height .3s, border-color .3s, opacity .3s;
  mix-blend-mode: screen;
}
#cursor-inner {
  position: fixed; z-index: 9999; pointer-events: none;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--a1);
  transform: translate(-50%,-50%);
  transition: transform .1s;
  box-shadow: 0 0 10px var(--a1);
}
/* cursor removed */

/* ══════════════════════════════════════════
   BACKGROUND MESH
══════════════════════════════════════════ */
#bg-canvas {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
}
/* orbs removed */

/* ── BG SECTION TINT LAYER ── */
#bg-tint {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  transition: background 2.5s cubic-bezier(.4,0,.2,1);
}

/* ── AURORA LAYER ── */
#bg-aurora {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  opacity: 0.6;
}

/* noise overlay */
body::after {
  content: ''; position: fixed; inset: 0; z-index: 1; pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

/* ══════════════════════════════════════════
   GLASS UTILITIES
══════════════════════════════════════════ */
.glass {
  background: var(--glass-1);
  backdrop-filter: blur(24px) saturate(140%);
  -webkit-backdrop-filter: blur(24px) saturate(140%);
  border: 1px solid var(--border-1);
  border-radius: var(--r-lg);
}
.glass-2 {
  background: var(--glass-2);
  backdrop-filter: blur(20px) saturate(130%);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
  border: 1px solid var(--border-2);
  border-radius: var(--r-md);
}
.glass-card {
  background: var(--glass-2);
  backdrop-filter: blur(16px) saturate(120%);
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  border: 1px solid var(--border-1);
  border-radius: var(--r-lg);
  transition: background .35s, border-color .35s, transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .35s;
  position: relative; overflow: hidden;
}
.glass-card::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.06) 45%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.06) 55%, transparent 60%);
  transform: translateX(-100%); transition: transform 0s;
  pointer-events: none; z-index: 1;
}
.glass-card:hover::after {
  transform: translateX(100%); transition: transform .6s ease-out;
}
.glass-card:hover {
  background: var(--glass-3);
  border-color: var(--border-a);
  transform: translateY(-4px);
  box-shadow: 0 12px 48px rgba(0,0,0,0.35), 0 0 0 1px rgba(126,200,255,0.12), inset 0 1px 0 rgba(255,255,255,0.1);
}

/* ══════════════════════════════════════════
   LAYOUT · NAV / HERO / TICKER / SECTION BASE / FOOTER / RESPONSIVE
══════════════════════════════════════════ */

/* ══════════════════════════════════════════
   NAV
══════════════════════════════════════════ */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  height: 64px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 48px;
  background: rgba(7,11,18,0.5);
  backdrop-filter: blur(40px) saturate(160%);
  -webkit-backdrop-filter: blur(40px) saturate(160%);
  border-bottom: 1px solid var(--border-1);
  transition: border-color .4s, background .4s;
}
nav.scrolled { background: rgba(7,11,18,0.75); border-color: var(--border-2); }

.nav-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.nav-logo-mark {
  width: 32px; height: 32px; border-radius: 8px;
  border: 1px solid rgba(126,200,255,0.3);
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
  background: transparent;
  transition: transform .25s ease, border-color .25s ease;
}
.nav-logo-mark svg { display: block; width: 100%; height: 100%; border-radius: 7px; }
.nav-logo:hover .nav-logo-mark {
  transform: scale(1.05);
  border-color: rgba(126,200,255,0.6);
}
.nav-wordmark { font-family: var(--f-display); font-size: 14px; font-weight: 700; color: var(--t0); letter-spacing: 0.02em; }
.nav-wordmark em { color: var(--t3); font-style: normal; }

.nav-links { display: flex; gap: 4px; list-style: none; align-items: center; }
.nav-links a {
  font-family: var(--f-mono); font-size: 12px; color: var(--t2);
  text-decoration: none; letter-spacing: 0.04em; padding: 6px 14px;
  border-radius: 8px; border: 1px solid transparent;
  transition: all .2s;
}
.nav-links a:hover, .nav-links a.active {
  color: var(--t0); background: var(--glass-2); border-color: var(--border-2);
}
.nav-right { display: flex; align-items: center; gap: 8px; }

/* ── More dropdown ── */
.nav-more-wrap { position: relative; }
.nav-more-btn { cursor: pointer; user-select: none; }
.nav-caret { display: inline-block; font-size: 9px; transform: translateY(-1px); margin-left: 2px; transition: transform .25s; }
.nav-more-btn.open .nav-caret { transform: rotate(180deg) translateY(1px); }
.nav-more-menu {
  position: absolute; top: calc(100% + 8px); right: 0;
  min-width: 230px;
  background: rgba(7,11,18,0.96); backdrop-filter: blur(24px);
  border: 1px solid var(--border-2); border-radius: 12px;
  padding: 6px; display: flex; flex-direction: column; gap: 2px;
  opacity: 0; transform: translateY(-6px) scale(0.98); pointer-events: none;
  transition: all .2s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 18px 48px -12px rgba(0,0,0,0.6);
  z-index: 200;
}
.nav-more-menu.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.nav-more-menu a {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--f-mono); font-size: 12px; color: var(--t1);
  padding: 9px 12px; border-radius: 8px; text-decoration: none;
  border: 1px solid transparent; letter-spacing: 0.04em;
  transition: all .18s;
}
.nav-more-menu a:hover, .nav-more-menu a.active {
  color: var(--t0); background: var(--glass-2); border-color: var(--border-2);
}
.nav-more-menu .nm-num {
  font-size: 9.5px; color: var(--t3); letter-spacing: .12em; min-width: 18px;
}

/* ── TOC rail (right side, desktop) ── */
.toc-rail {
  position: fixed; right: 18px; top: 50%; transform: translateY(-50%);
  z-index: 90; display: flex; flex-direction: column; gap: 8px;
  padding: 10px 8px;
  background: rgba(7,11,18,0.45); backdrop-filter: blur(12px);
  border: 1px solid var(--border-1); border-radius: 100px;
  opacity: 0; pointer-events: none; transition: opacity .35s;
}
.toc-rail.show { opacity: 1; pointer-events: auto; }
.toc-dot {
  position: relative; width: 10px; height: 10px; border-radius: 50%;
  background: var(--glass-2); border: 1px solid var(--border-2);
  cursor: pointer; transition: all .25s;
}
.toc-dot:hover { background: var(--glass-3); transform: scale(1.25); }
.toc-dot.active {
  background: var(--a1); border-color: var(--a1);
  box-shadow: 0 0 0 3px rgba(126,200,255,0.18);
}
.toc-dot .toc-tip {
  position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%);
  white-space: nowrap; font-family: var(--f-mono); font-size: 10.5px;
  color: var(--t1); background: rgba(7,11,18,0.94);
  padding: 4px 10px; border-radius: 6px;
  border: 1px solid var(--border-2); letter-spacing: .04em;
  opacity: 0; pointer-events: none; transition: opacity .2s;
}
.toc-dot:hover .toc-tip { opacity: 1; }

.lang-pill {
  display: flex; border-radius: 100px; border: 1px solid var(--border-2);
  background: var(--glass-1); overflow: hidden;
}
.lang-btn {
  font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.06em;
  padding: 8px 14px; min-height: 44px; min-width: 44px;
  background: transparent; color: var(--t3); cursor: pointer;
  border: none; transition: all .2s;
  display: flex; align-items: center; justify-content: center;
}
.lang-btn.on { background: var(--glass-3); color: var(--a1); }

.nav-cta {
  font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.06em;
  padding: 10px 22px; text-decoration: none; color: var(--t0);
  background: linear-gradient(135deg, rgba(126,200,255,0.28), rgba(167,139,250,0.22));
  border: 1px solid rgba(126,200,255,0.4); border-radius: 100px;
  transition: all .3s cubic-bezier(.34,1.56,.64,1); white-space: nowrap;
  min-height: 44px; display: inline-flex; align-items: center;
}
.nav-cta:hover { background: linear-gradient(135deg, rgba(126,200,255,0.38), rgba(167,139,250,0.32)); box-shadow: 0 4px 24px rgba(126,200,255,0.2); transform: translateY(-1px); }

/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
.hero {
  position: relative; z-index: 2; min-height: 100vh;
  display: flex; align-items: center;
  padding: 120px 48px 80px;
  overflow: hidden;
}
#hero-particles {
  position: absolute; inset: 0; z-index: 0;
}
.hero { cursor: pointer; }
.hero::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 240px; z-index: 1;
  background: linear-gradient(to top, var(--bg-base), transparent);
  pointer-events: none;
}
.hero > * { position: relative; z-index: 2; }
.hero-wrap {
  max-width: 1200px; margin: 0 auto; width: 100%;
  display: grid; grid-template-columns: 1fr 360px; gap: 64px; align-items: start;
}
.hero-eyebrow {
  font-family: var(--f-mono); font-size: 10px; color: var(--a1);
  letter-spacing: 0.18em; text-transform: uppercase;
  display: flex; align-items: center; gap: 12px; margin-bottom: 24px;
  opacity: 0; animation: fadeUp .7s .1s both;
}
.hero-eyebrow .pulse-dot {
  width: 7px; height: 7px; border-radius: 50%; background: var(--a3);
  box-shadow: 0 0 0 0 var(--a3); animation: pulse-ring 2s ease-in-out infinite;
}
@keyframes pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(52,212,168,0.5); }
  70% { box-shadow: 0 0 0 8px rgba(52,212,168,0); }
  100% { box-shadow: 0 0 0 0 rgba(52,212,168,0); }
}

.hero-h1 {
  font-family: var(--f-heading); font-weight: 900;
  font-size: clamp(64px, 9vw, 120px); line-height: 0.9; letter-spacing: -0.04em;
  margin-bottom: 8px; opacity: 0; animation: fadeUp .7s .18s both;
}
.hero-h1 .line1 { display: block; }
.hero-h1 .line2 { display: block; color: var(--t3); font-weight: 300; }
.grad-text {
  background: linear-gradient(110deg, var(--a1) 0%, var(--a2) 45%, var(--a3) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.hero-fullname {
  font-family: var(--f-mono); font-size: 13px; color: var(--t3); letter-spacing: 0.05em;
  margin-bottom: 6px; opacity: 0; animation: fadeUp .7s .26s both;
}
.hero-fullname-zh {
  font-size: 15px; color: var(--t2); font-weight: 300; letter-spacing: 0.03em;
  margin-bottom: 28px; opacity: 0; animation: fadeUp .7s .3s both;
}

.hero-desc {
  font-size: 15px; color: var(--t2); max-width: 520px;
  line-height: 1.9; margin-bottom: 36px;
  opacity: 0; animation: fadeUp .7s .38s both;
}

.hero-tags {
  display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 36px;
  opacity: 0; animation: fadeUp .7s .44s both;
}
.tag-pill {
  font-family: var(--f-mono); font-size: 9.5px; padding: 5px 13px;
  border-radius: 100px; border: 1px solid var(--border-1);
  background: var(--glass-1); color: var(--t3); letter-spacing: 0.04em;
  cursor: default; transition: all .25s; white-space: nowrap;
}
.tag-pill:hover { border-color: var(--border-a); color: var(--t1); background: var(--glass-2); }

.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; opacity: 0; animation: fadeUp .7s .5s both; }
.btn-primary {
  font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.06em;
  padding: 14px 32px; border-radius: 100px; text-decoration: none; cursor: pointer; border: none;
  background: linear-gradient(135deg, rgba(126,200,255,0.35) 0%, rgba(167,139,250,0.28) 50%, rgba(244,114,182,0.2) 100%);
  border: 1px solid rgba(126,200,255,0.45); color: var(--t0); display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; transition: all .3s cubic-bezier(.34,1.56,.64,1); position: relative; overflow: hidden;
  min-height: 48px;
}
.btn-primary::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, transparent 60%);
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(126,200,255,0.25), 0 0 0 1px rgba(126,200,255,0.3); border-color: rgba(126,200,255,0.7); }

.btn-secondary {
  font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.06em;
  padding: 14px 32px; border-radius: 100px; text-decoration: none; cursor: pointer;
  background: var(--glass-1); border: 1px solid var(--border-2); color: var(--t2);
  display: inline-flex; align-items: center; gap: 8px; transition: all .3s cubic-bezier(.34,1.56,.64,1);
  min-height: 48px;
}
.btn-secondary:hover { background: var(--glass-2); border-color: var(--border-3); color: var(--t1); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,0.3); }

/* PROFILE CARD */
.profile-card {
  background: var(--glass-2); backdrop-filter: blur(32px) saturate(150%);
  -webkit-backdrop-filter: blur(32px) saturate(150%);
  border: 1px solid var(--border-2); border-radius: var(--r-xl);
  padding: 0 32px 28px; position: relative; overflow: hidden;
  opacity: 0; animation: fadeUp .8s .28s both;
}
.profile-card::before {
  content: ''; position: absolute; top: 220px; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(126,200,255,0.25), rgba(167,139,250,0.2), transparent);
  pointer-events: none;
}
.profile-card::after {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 50%);
  pointer-events: none; border-radius: inherit;
}

/* avatar */
.avatar-wrap { display: flex; align-items: flex-start; gap: 18px; margin-bottom: 22px; }
.avatar {
  width: 66px; height: 66px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, rgba(126,200,255,0.4), rgba(167,139,250,0.4));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display); font-size: 24px; font-weight: 800; color: white;
  border: 1px solid rgba(255,255,255,0.15);
  box-shadow: 0 0 30px rgba(126,200,255,0.2), inset 0 1px 0 rgba(255,255,255,0.2);
  position: relative; overflow: hidden;
}
.avatar::before {
  content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;
  background: linear-gradient(45deg, transparent 30%, rgba(255,255,255,0.1) 50%, transparent 70%);
  animation: sheen 4s ease-in-out infinite;
}
@keyframes sheen { 0%,100% { transform: translateX(-60%) translateY(-60%); } 50% { transform: translateX(60%) translateY(60%); } }
.profile-name { font-family: var(--f-display); font-size: 20px; font-weight: 700; color: var(--t0); }
.profile-name-en { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.06em; margin-top: 2px; }
.profile-role { font-family: var(--f-mono); font-size: 11px; color: var(--a1); letter-spacing: 0.12em; margin-bottom: 14px; margin-top: 4px; }

/* info rows */
.info-rows { list-style: none; display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.info-row { font-family: var(--f-mono); font-size: 12px; color: var(--t2); display: flex; gap: 10px; }
.info-row .lbl { color: var(--t3); min-width: 44px; flex-shrink: 0; }
.info-row a { color: var(--a1); text-decoration: none; }

/* status */
.status-row { display: flex; gap: 14px; margin-bottom: 18px; flex-wrap: wrap; }
.status-pill {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--f-mono); font-size: 11px; color: var(--t3);
  background: var(--glass-1); border: 1px solid var(--border-1);
  padding: 4px 10px; border-radius: 100px;
}
.s-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.s-dot.g { background: var(--a3); box-shadow: 0 0 5px var(--a3); animation: blink-s 2s infinite; }
.s-dot.b { background: var(--a1); box-shadow: 0 0 5px var(--a1); animation: blink-s 2.4s .5s infinite; }
.s-dot.v { background: var(--a2); box-shadow: 0 0 5px var(--a2); animation: blink-s 2.8s 1s infinite; }
@keyframes blink-s { 0%,100%{opacity:1} 50%{opacity:.3} }

/* micro tags */
.micro-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.micro-tag {
  font-family: var(--f-mono); font-size: 11px; padding: 3px 9px;
  border-radius: 6px; border: 1px solid var(--border-1); color: var(--t3);
  background: var(--glass-1); transition: all .2s;
}
.micro-tag.hi { border-color: rgba(126,200,255,0.25); color: rgba(126,200,255,0.7); background: rgba(126,200,255,0.06); }

@keyframes fadeUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }

/* scroll cue */
.scroll-cue {
  position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%); z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  opacity: 0; animation: fadeUp .5s 1.1s both;
}
.scroll-cue span { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.12em; }
.scroll-cue-line { width: 1px; height: 40px; background: linear-gradient(to bottom, var(--a1), transparent); animation: grow 2s ease-in-out infinite; }
@keyframes grow { 0%,100%{transform:scaleY(1);opacity:.6} 50%{transform:scaleY(1.3);opacity:1} }

/* ══════════════════════════════════════════
   TICKER
══════════════════════════════════════════ */
.ticker-wrap {
  position: relative; z-index: 2; overflow: hidden;
  background: rgba(255,255,255,0.02);
  border-top: 1px solid var(--border-1); border-bottom: 1px solid var(--border-1);
  padding: 10px 0;
}
.ticker-label {
  font-family: var(--f-mono); font-size: 11px; color: var(--a1); letter-spacing: 0.14em;
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  background: rgba(7,11,18,0.95); padding: 0 16px 0 48px; z-index: 2;
  white-space: nowrap; border-right: 1px solid var(--border-1);
  backdrop-filter: blur(8px);
}
.ticker-track { display: flex; width: max-content; animation: ticker 46s linear infinite; padding-left: 180px; }
.ticker-track:hover { animation-play-state: paused; }
.ticker-track.touch-paused { animation-play-state: paused; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.tk { font-family: var(--f-mono); font-size: 12px; color: var(--t2); white-space: nowrap; padding: 0 44px; border-left: 1px solid var(--border-1); }
.tk b { color: var(--a1); font-weight: 400; }

/* ══════════════════════════════════════════
   SECTION BASE
══════════════════════════════════════════ */
section { position: relative; z-index: 2; padding: 96px 48px; }
.wrap { max-width: 1200px; margin: 0 auto; }

.sec-label {
  font-family: var(--f-mono); font-size: 11.5px; color: var(--a1);
  letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 12px;
  display: flex; align-items: center; gap: 12px;
}
.sec-label::before { content: ''; width: 32px; height: 2px; background: linear-gradient(90deg, var(--a1), var(--a2), transparent); border-radius: 1px; }

.sec-h2 {
  font-family: var(--f-heading); font-size: clamp(36px,5vw,56px);
  font-weight: 800; line-height: 1.05; margin-bottom: 8px; color: var(--t0);
  letter-spacing: -0.02em;
}
.sec-sub { font-family: var(--f-mono); font-size: 12.5px; color: var(--t3); letter-spacing: 0.04em; margin-bottom: 52px; }

/* reveal anim */
.rv { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.rv.in { opacity: 1; transform: translateY(0); }

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
footer {
  border-top: 1px solid var(--border-1); padding: 28px 48px;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 10px; position: relative; z-index: 2;
  background: rgba(7,11,18,0.6); backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.f-left { font-family: var(--f-mono); font-size: 13px; color: var(--t3); }
.f-left span { color: var(--a1); }
.f-right { font-family: var(--f-mono); font-size: 11.5px; color: var(--t3); }

/* divider */
.div-line { display: flex; align-items: center; gap: 14px; margin: 44px 0; }
.div-line::before,.div-line::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--border-1), transparent); }
.div-line span { font-family: var(--f-mono); font-size: 9px; color: var(--t3); letter-spacing: 0.12em; white-space: nowrap; }

/* scrollbar */
::-webkit-scrollbar { width: 2px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(126,200,255,0.2); border-radius: 2px; }

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
/* ══════════════════════════════════════════
   COMPONENTS · SECTION-LEVEL UI BLOCKS
   About/Stats · 3-Domain · Research · XR · Publications ·
   Awards · News · Teaching · Contact · Panel v2 ·
   Project Showcase · Portfolio · Practice · Hamburger ·
   Visitor · Lab Equipment
══════════════════════════════════════════ */

/* ══════════════════════════════════════════
   ABOUT / STATS
══════════════════════════════════════════ */
.about-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }

.about-text p { font-size: 15px; color: var(--t2); margin-bottom: 16px; line-height: 1.9; }
.about-text .hl { color: var(--t1); font-weight: 500; }
.about-text .mono { font-family: var(--f-mono); font-size: 13px; color: var(--a3); }

.about-text blockquote {
  border-left: 1px solid rgba(126,200,255,0.3);
  padding: 10px 16px; margin: 16px 0;
  font-family: var(--f-mono); font-size: 12.5px; color: var(--t3); line-height: 1.7;
  background: rgba(126,200,255,0.03); border-radius: 0 8px 8px 0;
}

.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.stat-card {
  padding: 28px 24px; position: relative; overflow: hidden;
  background: var(--glass-2); backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--border-1); border-radius: var(--r-lg);
  transition: all .35s cubic-bezier(.34,1.56,.64,1);
}
.stat-card:hover { background: var(--glass-3); border-color: var(--border-a); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.3); }
.stat-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
}
.stat-card:nth-child(1) { grid-column: span 2; }
.stat-card:nth-child(1)::before { background: linear-gradient(90deg, var(--a1), var(--a2), transparent); }
.stat-card:nth-child(2)::before { background: linear-gradient(90deg, var(--a2), transparent); }
.stat-card:nth-child(3)::before { background: linear-gradient(90deg, var(--a3), transparent); }
.stat-card:nth-child(4)::before { background: linear-gradient(90deg, var(--a4), transparent); }
.stat-n { font-family: var(--f-display); font-size: 44px; font-weight: 900; line-height: 1; margin-bottom: 6px; }
.stat-card:nth-child(1) .stat-n { font-size: 56px; color: var(--a1); }
.stat-card:nth-child(2) .stat-n { color: var(--a2); }
.stat-card:nth-child(3) .stat-n { color: var(--a3); }
.stat-card:nth-child(4) .stat-n { color: var(--a4); }
.stat-l { font-family: var(--f-mono); font-size: 12px; color: var(--t2); letter-spacing: 0.04em; line-height: 1.55; }
@media (max-width: 768px) { .stats { grid-template-columns: repeat(2, 1fr); } .stat-card:nth-child(1) { grid-column: span 2; } .stat-card:nth-child(1) .stat-n { font-size: 44px; } }
@media (max-width: 480px) { .stats { grid-template-columns: 1fr 1fr; gap: 8px; } .stat-card { padding: 18px 16px; } .stat-n { font-size: 32px; } .stat-card:nth-child(1) .stat-n { font-size: 36px; } }

/* ══════════════════════════════════════════
   3-DOMAIN INTERACTIVE
══════════════════════════════════════════ */
.arch-panel-wrap {
  background: var(--glass-1); backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border-1); border-radius: var(--r-xl);
  overflow: hidden; margin-bottom: 56px;
}
.arch-header {
  padding: 14px 24px; border-bottom: 1px solid var(--border-1);
  display: flex; align-items: center; justify-content: space-between;
  background: var(--glass-1);
}
.arch-header-l { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.12em; }
.arch-status { display: flex; align-items: center; gap: 6px; font-family: var(--f-mono); font-size: 11px; color: var(--a3); }
.arch-status::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--a3); box-shadow: 0 0 6px var(--a3); animation: blink-s 2s infinite; }

.arch-body { display: grid; grid-template-columns: 200px 1fr; min-height: 320px; }
.arch-nav { border-right: 1px solid var(--border-1); padding: 20px 14px; display: flex; flex-direction: column; gap: 4px; }
.arch-nav-btn {
  font-family: var(--f-mono); font-size: 12px; padding: 11px 14px;
  border: 1px solid transparent; border-radius: var(--r-sm); cursor: pointer;
  background: transparent; text-align: left; color: var(--t2);
  display: flex; align-items: center; gap: 8px; transition: all .22s;
}
.arch-nav-btn .icon { width: 5px; height: 5px; border-radius: 50%; background: var(--t3); flex-shrink: 0; transition: all .22s; }
.arch-nav-btn:hover { color: var(--t1); background: var(--glass-2); border-color: var(--border-1); }
.arch-nav-btn.on { color: var(--t0); background: var(--glass-3); border-color: var(--border-a); }
.arch-nav-btn.on .icon { background: var(--a1); box-shadow: 0 0 6px var(--a1); }
.arch-nav-btn.n2.on .icon { background: var(--a3); box-shadow: 0 0 6px var(--a3); }
.arch-nav-btn.n3.on .icon { background: var(--a2); box-shadow: 0 0 6px var(--a2); }

.arch-content { padding: 32px 36px; position: relative; }
.a-panel { display: none; }
.a-panel.show { display: block; animation: panelIn .3s ease; }
@keyframes panelIn { from{opacity:0;transform:translateX(8px)} to{opacity:1;transform:translateX(0)} }
.a-panel-tag { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 10px; }
.a-panel h3 { font-family: var(--f-display); font-size: 22px; font-weight: 700; color: var(--t0); margin-bottom: 4px; line-height: 1.2; }
.a-panel h3 small { display: block; font-family: var(--f-mono); font-size: 12px; color: var(--t3); font-weight: 400; margin-top: 3px; letter-spacing: 0.03em; }
.a-panel p { font-size: 14px; color: var(--t2); line-height: 1.85; margin: 14px 0; max-width: 540px; }
.a-panel-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 20px; }
.apm {
  padding: 13px 15px; border-radius: var(--r-sm);
  background: var(--glass-2); border: 1px solid var(--border-1);
}
.apm-v { font-family: var(--f-display); font-size: 18px; font-weight: 700; margin-bottom: 2px; }
.apm-l { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.04em; }

/* ══════════════════════════════════════════
   RESEARCH CARDS
══════════════════════════════════════════ */
.research-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.r-card {
  padding: 30px; position: relative; overflow: hidden;
  background: var(--glass-1); backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--border-1); border-radius: var(--r-lg);
  transition: all .4s cubic-bezier(.34,1.56,.64,1); cursor: default;
}
.r-card:nth-child(1), .r-card:nth-child(2) { grid-column: span 1; grid-row: span 1; padding: 36px; }
.r-card:nth-child(1) h3, .r-card:nth-child(2) h3 { font-size: 20px; }
.r-card:hover { background: var(--glass-3); border-color: var(--border-a); transform: translateY(-5px); box-shadow: 0 20px 56px rgba(0,0,0,0.35), 0 0 0 1px rgba(126,200,255,0.08); }
.r-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  opacity: 0; transition: opacity .3s;
}
.r-card:hover::before { opacity: 1; }
.r-card::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.05) 45%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0.05) 55%, transparent 60%);
  transform: translateX(-100%); transition: transform 0s; pointer-events: none;
}
.r-card:hover::after { transform: translateX(100%); transition: transform .6s ease-out; }
.r-card:nth-child(1)::before,.r-card:nth-child(4)::before { background: linear-gradient(90deg, transparent, var(--a1), transparent); }
.r-card:nth-child(2)::before,.r-card:nth-child(5)::before { background: linear-gradient(90deg, transparent, var(--a2), transparent); }
.r-card:nth-child(3)::before,.r-card:nth-child(6)::before { background: linear-gradient(90deg, transparent, var(--a3), transparent); }
.r-num { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: 0.12em; margin-bottom: 14px; }
.r-card:nth-child(1) .r-num,.r-card:nth-child(4) .r-num { color: var(--a1); }
.r-card:nth-child(2) .r-num,.r-card:nth-child(5) .r-num { color: var(--a2); }
.r-card:nth-child(3) .r-num,.r-card:nth-child(6) .r-num { color: var(--a3); }
.r-card h3 { font-family: var(--f-display); font-size: 17px; font-weight: 700; color: var(--t0); margin-bottom: 4px; line-height: 1.25; }
.r-card h3 small { display: block; font-family: var(--f-mono); font-size: 11px; color: var(--t3); font-weight: 400; margin-top: 3px; }
.r-card p { font-size: 14px; color: var(--t2); line-height: 1.8; margin-top: 12px; }

/* ══════════════════════════════════════════
   XR DEMO
══════════════════════════════════════════ */
.xr-wrap {
  background: var(--glass-1); backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border-1); border-radius: var(--r-xl);
  overflow: hidden; margin-bottom: 56px;
}
.xr-header {
  padding: 14px 24px; border-bottom: 1px solid var(--border-1);
  display: flex; align-items: center; justify-content: space-between;
  background: var(--glass-1); flex-wrap: wrap; gap: 10px;
}
.xr-title { font-family: var(--f-mono); font-size: 9.5px; color: var(--t3); letter-spacing: 0.1em; }
.xr-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.xr-tab {
  font-family: var(--f-mono); font-size: 9.5px; padding: 5px 14px;
  border: 1px solid var(--border-1); border-radius: 100px; color: var(--t3);
  background: transparent; cursor: pointer; transition: all .22s;
}
.xr-tab.on { border-color: rgba(126,200,255,0.35); color: var(--a1); background: rgba(126,200,255,0.08); }
.xr-body { display: grid; grid-template-columns: 1fr 260px; }
.xr-viz { position: relative; border-right: 1px solid var(--border-1); overflow: hidden; }
#xr-canvas { width: 100%; height: 260px; display: block; }
.xr-hud-overlay {
  position: absolute; top: 14px; left: 14px;
  font-family: var(--f-mono); font-size: 9px; color: var(--a1); letter-spacing: 0.06em; line-height: 1.9;
  background: rgba(7,11,18,0.55); backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 10px 14px; border-radius: var(--r-sm);
  border: 1px solid rgba(126,200,255,0.15);
}
.xr-side { padding: 22px 18px; display: flex; flex-direction: column; gap: 10px; }
.xr-m { padding: 13px 15px; border-radius: var(--r-sm); background: var(--glass-2); border: 1px solid var(--border-1); }
.xr-ml { font-family: var(--f-mono); font-size: 9px; color: var(--t3); letter-spacing: 0.07em; margin-bottom: 4px; }
.xr-mv { font-family: var(--f-display); font-size: 20px; font-weight: 700; color: var(--a3); }
.xr-bar { height: 2px; background: var(--border-1); margin-top: 6px; border-radius: 2px; overflow: hidden; }
.xr-bar-fill { height: 100%; background: linear-gradient(90deg, var(--a3), var(--a1)); border-radius: 2px; transition: width 1s ease; }
.xr-desc-box { margin-top: auto; font-family: var(--f-mono); font-size: 9.5px; color: var(--t3); line-height: 1.8; padding-top: 10px; border-top: 1px solid var(--border-1); }

/* ══════════════════════════════════════════
   PUBLICATIONS
══════════════════════════════════════════ */
.pub-filter { display: flex; gap: 6px; margin-bottom: 22px; flex-wrap: wrap; }
.pf-btn {
  font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.05em;
  padding: 6px 16px; border-radius: 100px; border: 1px solid var(--border-1);
  color: var(--t3); background: var(--glass-1); cursor: pointer; transition: all .2s;
}
.pf-btn.on { border-color: rgba(126,200,255,0.3); color: var(--a1); background: rgba(126,200,255,0.07); }

.pub-list { display: flex; flex-direction: column; gap: 6px; }
.pub-item {
  padding: 18px 22px; border-radius: var(--r-md);
  background: var(--glass-1); backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--border-1);
  display: flex; flex-direction: column;
  transition: all .22s; cursor: default;
}
.pub-item-row {
  display: grid; grid-template-columns: 60px 1fr auto 20px; gap: 16px; align-items: start;
}
.pub-item:hover { background: var(--glass-2); border-color: var(--border-2); transform: translateX(3px); }
.pub-yr { font-family: var(--f-mono); font-size: 12px; color: var(--a1); }
.pub-t { font-size: 13px; font-weight: 500; margin-bottom: 4px; line-height: 1.5; color: var(--t0); }
.pub-j { font-family: var(--f-mono); font-size: 11.5px; color: var(--t3); letter-spacing: 0.02em; line-height: 1.5; }
.badge { font-family: var(--f-mono); font-size: 10.5px; padding: 3px 8px; border-radius: 6px; border: 1px solid; letter-spacing: 0.06em; white-space: nowrap; align-self: flex-start; }
.badge.scie { border-color: rgba(126,200,255,0.3); color: var(--a1); background: rgba(126,200,255,0.06); }
.badge.ssci { border-color: rgba(167,139,250,0.3); color: var(--a2); background: rgba(167,139,250,0.06); }
.badge.ei   { border-color: rgba(52,212,168,0.3);  color: var(--a3); background: rgba(52,212,168,0.06); }
.badge.fc   { border-color: rgba(251,191,36,0.3);  color: var(--a4); background: rgba(251,191,36,0.06); }

/* ══════════════════════════════════════════
   AWARDS TIMELINE
══════════════════════════════════════════ */
.timeline { position: relative; padding-left: 24px; }
.timeline::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: linear-gradient(to bottom, var(--a1), var(--a2), rgba(255,255,255,0.03)); }

.tl-group { margin-bottom: 36px; position: relative; }
.tl-dot { position: absolute; left: -28px; top: 5px; width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--a1); background: var(--bg-base); box-shadow: 0 0 12px rgba(126,200,255,0.35); }
.tl-year { font-family: var(--f-display); font-size: 22px; font-weight: 700; color: var(--a1); margin-bottom: 12px; display: flex; align-items: center; gap: 12px; }
.tl-year::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, var(--border-2), transparent); }

.tl-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-left: 16px; }
.tl-card {
  padding: 14px 16px; border-radius: var(--r-md);
  background: var(--glass-1); backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--border-1); transition: all .25s; cursor: default;
}
.tl-card:hover { background: var(--glass-2); border-color: var(--border-2); transform: translateY(-2px); }
.tl-cn { font-size: 14px; font-weight: 500; color: var(--t0); line-height: 1.35; margin-bottom: 4px; }
.tl-cn small { display: block; font-family: var(--f-mono); font-size: 11px; color: var(--t3); margin-top: 2px; font-weight: 400; }
.tl-cl { font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.04em; line-height: 1.5; }
.tl-card.c1 .tl-cl{color:var(--a1)} .tl-card.c2 .tl-cl{color:var(--a2)} .tl-card.c3 .tl-cl{color:var(--a3)} .tl-card.c4 .tl-cl{color:var(--a4)}

.stu-highlight {
  margin-top: 10px;
  padding: 18px 22px; border-radius: var(--r-lg);
  background: linear-gradient(135deg, rgba(52,212,168,0.06), rgba(126,200,255,0.04));
  border: 1px solid rgba(52,212,168,0.18);
  display: flex; align-items: center; gap: 20px;
}
.stu-num { font-family: var(--f-display); font-size: 36px; font-weight: 800; color: var(--a3); flex-shrink: 0; }
.stu-txt { font-size: 14px; color: var(--t2); line-height: 1.75; }

/* ══════════════════════════════════════════
   NEWS
══════════════════════════════════════════ */
.news-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.news-card {
  padding: 22px; border-radius: var(--r-lg);
  background: var(--glass-1); backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--border-1); transition: all .3s; cursor: default; position: relative; overflow: hidden;
}
.news-card:hover { background: var(--glass-2); border-color: var(--border-2); transform: translateY(-3px); box-shadow: 0 12px 40px rgba(0,0,0,0.25); }
.news-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(126,200,255,0.3), transparent); transform: translateX(-100%); transition: transform .5s; }
.news-card:hover::after { transform: translateX(0); }
.news-date { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.07em; margin-bottom: 8px; }
.news-tag { display: inline-block; font-family: var(--f-mono); font-size: 10.5px; padding: 3px 9px; border-radius: 100px; border: 1px solid; letter-spacing: 0.06em; margin-bottom: 9px; }
.news-tag.aw { border-color: rgba(251,191,36,0.3); color: var(--a4); background: rgba(251,191,36,0.06); }
.news-tag.pp { border-color: rgba(52,212,168,0.3); color: var(--a3); background: rgba(52,212,168,0.06); }
.news-tag.il { border-color: rgba(167,139,250,0.3); color: var(--a2); background: rgba(167,139,250,0.06); }
.news-tag.lc { border-color: rgba(126,200,255,0.3); color: var(--a1); background: rgba(126,200,255,0.06); }
.news-t { font-size: 14px; font-weight: 500; color: var(--t0); line-height: 1.5; margin-bottom: 5px; }
.news-t small { display: block; font-family: var(--f-mono); font-size: 11.5px; color: var(--t3); margin-top: 2px; }
.news-b { font-size: 13.5px; color: var(--t2); line-height: 1.78; }

/* ══════════════════════════════════════════
   TEACHING
══════════════════════════════════════════ */
.course-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.course-card {
  padding: 20px; border-radius: var(--r-lg);
  background: var(--glass-1); backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border-1); transition: all .25s;
}
.course-card:hover { background: var(--glass-2); border-color: var(--border-2); transform: translateY(-2px); }
.course-num { font-family: var(--f-mono); font-size: 11px; color: var(--t3); margin-bottom: 7px; letter-spacing: 0.1em; }
.course-name { font-family: var(--f-display); font-size: 16px; font-weight: 600; color: var(--t0); margin-bottom: 2px; }
.course-name-en { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.03em; margin-bottom: 8px; }
.course-desc { font-size: 13.5px; color: var(--t2); line-height: 1.78; }

/* ══════════════════════════════════════════
   CONTACT
══════════════════════════════════════════ */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.contact-info { display: flex; flex-direction: column; gap: 14px; }
.ci { display: flex; gap: 12px; }
.ci-l { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: 0.1em; min-width: 52px; padding-top: 1px; flex-shrink: 0; }
.ci-v { font-family: var(--f-mono); font-size: 13px; color: var(--t1); line-height: 1.6; }
.ci-v a { color: var(--a1); text-decoration: none; }
.cta-card {
  padding: 28px; border-radius: var(--r-xl);
  background: linear-gradient(135deg, rgba(52,212,168,0.06), rgba(126,200,255,0.04), rgba(167,139,250,0.04));
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(52,212,168,0.15); position: relative; overflow: hidden;
}
.cta-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, var(--a3), var(--a1), var(--a2));
}
.cta-card p { font-size: 14.5px; color: var(--t2); line-height: 1.88; margin-bottom: 5px; }
.cta-card .en-note { font-family: var(--f-mono); font-size: 12px; color: var(--t3); margin-bottom: 20px; }
.cta-btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* sitemap */
.sitemap {
  margin-top: 52px; padding: 32px; border-radius: var(--r-xl);
  background: var(--glass-1); backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border-1);
}
.sitemap-h { font-family: var(--f-mono); font-size: 11.5px; color: var(--t3); letter-spacing: 0.12em; margin-bottom: 24px; padding-bottom: 14px; border-bottom: 1px solid var(--border-1); }
.sitemap-h::before { content: '// '; color: var(--a1); }
.sitemap-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 24px; }
.sm-col h4 { font-family: var(--f-mono); font-size: 11.5px; color: var(--a1); letter-spacing: 0.08em; margin-bottom: 11px; padding-bottom: 7px; border-bottom: 1px solid var(--border-1); }
.sm-col ul { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.sm-col li { font-family: var(--f-mono); font-size: 11px; color: var(--t3); display: flex; gap: 5px; }
.sm-col li::before { content: '↳'; color: var(--t4); font-size: 8px; }
.sm-col li.sub { padding-left: 10px; }
.sm-col li.sub::before { content: '·'; }

/* ════════════════════════════════════════════════
   PANEL CLICK INTERACTIONS v2
════════════════════════════════════════════════ */

/* ── Research card expand ── */
.r-card { cursor: pointer; }
.r-card .r-expand { 
  max-height: 0; overflow: hidden;
  transition: max-height .5s cubic-bezier(.4,0,.2,1), opacity .4s ease, margin .4s ease;
  opacity: 0; margin-top: 0;
}
.r-card.expanded .r-expand { max-height: 400px; opacity: 1; margin-top: 16px; }
.r-card .r-expand-inner {
  border-top: 1px solid var(--border-1); padding-top: 14px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.r-tag-row { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 10px; }
.r-tag { font-family: var(--f-mono); font-size: 11px; padding: 3px 9px; border-radius: 100px;
  border: 1px solid var(--border-1); color: var(--t3); background: var(--glass-1); }
.r-stat-mini { background: var(--glass-2); border: 1px solid var(--border-1); 
  border-radius: var(--r-sm); padding: 10px 12px; }
.r-stat-mini-n { font-family: var(--f-display); font-size: 18px; font-weight: 700; line-height: 1; margin-bottom: 2px; }
.r-stat-mini-l { font-family: var(--f-mono); font-size: 11px; color: var(--t3); }
.r-arrow { float: right; font-size: 13px; color: var(--t3); 
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), color .2s; }
.r-card.expanded .r-arrow { transform: rotate(180deg); color: var(--a1); }
.r-card.expanded { background: var(--glass-3); border-color: var(--border-a); }

/* ── Metric card pulse on click ── */
@keyframes apm-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.06); box-shadow: 0 0 20px rgba(126,200,255,0.2); }
  100% { transform: scale(1); }
}
.apm-popping { animation: apm-pop .4s cubic-bezier(.34,1.56,.64,1); }
.apm { cursor: pointer; transition: background .2s, border-color .2s; }
.apm:hover { background: var(--glass-3); border-color: var(--border-a); }

/* ── Domain nav progress ring ── */
.arch-nav-btn { position: relative; }
.arch-nav-btn .ring {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; opacity: 0; transition: opacity .3s;
}
.arch-nav-btn.on .ring { opacity: 1; }

/* ── Arch panel live indicator ── */
.live-bar-wrap { margin-top: 18px; }
.live-bar-label { font-family: var(--f-mono); font-size: 11px; color: var(--t3); 
  letter-spacing: .1em; margin-bottom: 5px; display: flex; justify-content: space-between; }
.live-bar { height: 3px; background: var(--border-1); border-radius: 3px; 
  overflow: hidden; margin-bottom: 10px; }
.live-bar-fill { height: 100%; border-radius: 3px; 
  transition: width 1.2s cubic-bezier(.4,0,.2,1); width: 0; }

/* ── Publication accordion ── */
.pub-item { cursor: pointer; }
.pub-item.expanded { background: var(--glass-3); border-color: var(--border-a); }
.pub-item .pub-detail {
  max-height: 0; overflow: hidden;
  transition: max-height .6s cubic-bezier(.4,0,.2,1), opacity .4s ease, padding .4s ease;
  opacity: 0;
  padding: 0 0;
}
.pub-item.expanded .pub-detail { max-height: 500px; opacity: 1; }
.pub-detail-inner {
  padding: 14px 0 6px;
  border-top: 1px solid var(--border-1); margin-top: 14px;
  display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-start;
}
.pub-link { font-family: var(--f-mono); font-size: 11.5px; padding: 4px 12px;
  border-radius: 100px; border: 1px solid var(--border-2); color: var(--t2);
  text-decoration: none; transition: all .2s; white-space: nowrap; }
.pub-link:hover { border-color: var(--a1); color: var(--a1); }
.pub-cite { font-family: var(--f-mono); font-size: 12px; color: var(--t3); line-height: 1.6; }
.pub-arrow { 
  font-size: 13px; color: var(--t3); 
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), color .2s;
  align-self: flex-start; padding-top: 3px; text-align: right;
  cursor: pointer;
}
.pub-item.expanded .pub-arrow { transform: rotate(180deg); color: var(--a1); }

/* ── News card expand ── */
.news-card { cursor: pointer; }
.news-card .news-extra {
  max-height: 0; overflow: hidden;
  transition: max-height .5s cubic-bezier(.4,0,.2,1), opacity .35s ease, margin .35s;
  opacity: 0; margin-top: 0;
}
.news-card.expanded .news-extra { max-height: 200px; opacity: 1; margin-top: 12px; }
.news-extra-inner {
  border-top: 1px solid var(--border-1); padding-top: 10px;
  font-family: var(--f-mono); font-size: 12px; color: var(--t3); line-height: 1.7;
}
.news-arrow { float: right; font-size: 12px; color: var(--t3); 
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), color .2s; }
.news-card.expanded .news-arrow { transform: rotate(180deg); color: var(--a1); }
.news-card.expanded { background: var(--glass-3); border-color: var(--border-a); }

/* ── Stat card click counter animation ── */
@keyframes stat-burst {
  0%  { transform: scale(1); }
  35% { transform: scale(1.08); filter: brightness(1.3); }
  100%{ transform: scale(1); filter: brightness(1); }
}
.stat-card { cursor: pointer; }
.stat-card.bursting { animation: stat-burst .45s cubic-bezier(.34,1.56,.64,1); }

/* ── Award card modal ── */
.modal-bg {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(7,11,18,0.75); backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .3s;
}
.modal-bg.open { opacity: 1; pointer-events: auto; }
.modal-box {
  background: rgba(20,28,42,0.95); border: 1px solid var(--border-2);
  border-radius: var(--r-xl); padding: 36px; max-width: 480px; width: 90%;
  position: relative; overflow: hidden;
  transform: translateY(20px) scale(0.97);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .3s;
  opacity: 0;
}
.modal-bg.open .modal-box { transform: none; opacity: 1; }
.modal-box::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--a4), var(--a2), var(--a1));
}
.modal-close {
  position: absolute; top: 16px; right: 16px; width: 32px; height: 32px;
  border-radius: 50%; border: 1px solid var(--border-1); background: var(--glass-2);
  color: var(--t2); font-size: 16px; cursor: pointer; display: flex;
  align-items: center; justify-content: center; transition: all .2s;
}
.modal-close:hover { border-color: var(--a1); color: var(--a1); }
.modal-yr { font-family: var(--f-mono); font-size: 11.5px; color: var(--a1); letter-spacing: .12em; margin-bottom: 8px; }
.modal-title { font-family: var(--f-display); font-size: 20px; font-weight: 700; margin-bottom: 6px; line-height: 1.25; }
.modal-sub { font-family: var(--f-mono); font-size: 12px; color: var(--t3); letter-spacing: .03em; margin-bottom: 16px; }
.modal-level { display: inline-block; font-family: var(--f-mono); font-size: 13px; 
  padding: 5px 14px; border-radius: 100px; border: 1px solid; letter-spacing: .04em; }
.modal-level.c4 { border-color: rgba(251,191,36,.4); color: var(--a4); background: rgba(251,191,36,.07); }
.modal-level.c1 { border-color: rgba(126,200,255,.4); color: var(--a1); background: rgba(126,200,255,.07); }
.modal-level.c2 { border-color: rgba(167,139,250,.4); color: var(--a2); background: rgba(167,139,250,.07); }
.modal-level.c3 { border-color: rgba(52,212,168,.4); color: var(--a3); background: rgba(52,212,168,.07); }
.modal-desc { font-size: 14px; color: var(--t2); line-height: 1.8; margin-top: 16px; }
.tl-card { cursor: pointer; }

/* ── Tag pills click highlight ── */
.tag-pill { cursor: pointer; }
.tag-pill.tagged { 
  border-color: var(--border-a); color: var(--t1);
  background: var(--glass-3);
  box-shadow: 0 0 12px rgba(126,200,255,0.12);
}

/* ── Copy email on click ── */
.copy-flash {
  position: fixed; z-index: 9500; 
  font-family: var(--f-mono); font-size: 11px; color: var(--a3);
  background: rgba(15,25,35,0.92); border: 1px solid rgba(52,212,168,0.3);
  padding: 8px 16px; border-radius: var(--r-sm);
  transform: translateY(0); opacity: 1;
  animation: copy-up .8s ease forwards;
  pointer-events: none;
}
@keyframes copy-up {
  0%  { opacity:1; transform:translateY(0); }
  70% { opacity:1; transform:translateY(-20px); }
  100%{ opacity:0; transform:translateY(-30px); }
}

/* ── Arch panel pulse on load ── */
@keyframes panel-load-in {
  0%  { opacity:0; transform: translateX(12px); }
  100%{ opacity:1; transform: translateX(0); }
}
.a-panel.show { animation: panel-load-in .4s ease; }


/* ════════════════════════════════════════
   PROJECT SHOWCASE
════════════════════════════════════════ */
.proj-tabs {
  display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap;
}
.proj-tab {
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 12px 16px; min-width: 130px;
  background: var(--glass-1); border: 1px solid var(--border-1);
  border-radius: var(--r-md); cursor: pointer;
  transition: all .25s; text-align: left;
}
.proj-tab:hover { background: var(--glass-2); border-color: var(--border-2); }
.proj-tab.on {
  background: var(--glass-3); border-color: var(--border-a);
  box-shadow: 0 0 20px rgba(126,200,255,0.08);
}
.proj-tab-num {
  font-family: var(--f-mono); font-size: 9px; color: var(--a1);
  letter-spacing: .12em; margin-bottom: 4px;
}
.proj-tab.on .proj-tab-num { color: var(--a1); }
.proj-tab-label {
  font-family: var(--f-display); font-size: 13.5px; font-weight: 600;
  color: var(--t1); line-height: 1.3; margin-bottom: 2px;
}
.proj-tab-sub {
  font-family: var(--f-mono); font-size: 10.5px; color: var(--t3);
  letter-spacing: .03em;
}

.proj-panels { position: relative; display: grid; }
.proj-panels > .proj-panel { grid-area: 1 / 1; }
.proj-panel {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  background: var(--glass-1); border: 1px solid var(--border-1);
  border-radius: var(--r-xl); overflow: hidden;
  opacity: 0; transform: translateY(8px);
  pointer-events: none; visibility: hidden;
  transition: opacity .35s cubic-bezier(.4,0,.2,1), transform .45s cubic-bezier(.4,0,.2,1);
}
.proj-panel.show {
  opacity: 1; transform: none;
  pointer-events: auto; visibility: visible;
  z-index: 2;
}
.proj-tabs { position: relative; }
.proj-tab:focus-visible { outline: 2px solid var(--a1); outline-offset: 2px; }
.proj-kbd-hint {
  font-family: var(--f-mono); font-size: 10px; color: var(--t3);
  letter-spacing: .08em; margin-left: auto; padding: 6px 10px;
  display: flex; align-items: center; gap: 6px; opacity: .7;
}
.proj-kbd-hint kbd {
  font-family: var(--f-mono); font-size: 9.5px;
  padding: 2px 6px; border-radius: 4px;
  background: var(--glass-2); border: 1px solid var(--border-2);
  color: var(--t1);
}

/* viz side */
.proj-viz {
  position: relative; overflow: hidden; min-height: 340px;
  border-right: 1px solid var(--border-1);
  background: rgba(5,8,14,0.6);
}
.proj-canvas { display: block; width: 100%; }
.proj-hud {
  position: absolute; top: 16px; left: 16px;
  font-family: var(--f-mono); font-size: 9px;
  background: rgba(7,11,18,0.7); backdrop-filter: blur(8px);
  border: 1px solid rgba(126,200,255,0.15); border-radius: var(--r-sm);
  padding: 10px 14px; line-height: 1;
}
.phud-line { display: flex; gap: 8px; margin-bottom: 6px; }
.phud-line:last-child { margin-bottom: 0; }
.phud-k { color: var(--t3); letter-spacing: .08em; min-width: 52px; }
.phud-v { color: var(--t1); }

/* info side */
.proj-info {
  padding: 28px 28px; display: flex; flex-direction: column; gap: 0;
  overflow-y: auto; max-height: 520px;
}
.proj-info::-webkit-scrollbar { width: 2px; }
.proj-info::-webkit-scrollbar-thumb { background: var(--border-2); border-radius: 2px; }

.proj-tag {
  display: inline-block; font-family: var(--f-mono); font-size: 11px;
  padding: 3px 10px; border-radius: 100px; border: 1px solid;
  letter-spacing: .05em; margin-bottom: 12px; align-self: flex-start;
}
.proj-title {
  font-family: var(--f-display); font-size: 18px; font-weight: 700;
  color: var(--t0); line-height: 1.25; margin-bottom: 4px;
}
.proj-title-en {
  font-family: var(--f-mono); font-size: 11.5px; color: var(--t3);
  letter-spacing: .02em; margin-bottom: 14px; line-height: 1.55;
}
.proj-body {
  font-size: 14px; color: var(--t2); line-height: 1.85;
  margin-bottom: 6px;
}
.proj-body-en {
  font-family: var(--f-mono); font-size: 12px; color: var(--t3);
  line-height: 1.7; margin-bottom: 14px;
  border-left: 1px solid var(--border-1); padding-left: 12px;
}
.proj-tech-stack {
  display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 16px;
}
.tech-chip {
  font-family: var(--f-mono); font-size: 11px; padding: 3px 9px;
  border-radius: 6px; border: 1px solid var(--border-1);
  color: var(--t3); background: var(--glass-1); letter-spacing: .03em;
}
.proj-papers { margin-bottom: 16px; }
.proj-paper-label {
  font-family: var(--f-mono); font-size: 11px; color: var(--t3);
  letter-spacing: .1em; margin-bottom: 8px; text-transform: uppercase;
}
.proj-paper-item {
  display: flex; gap: 8px; align-items: flex-start;
  padding: 8px 10px; border-radius: var(--r-sm);
  border: 1px solid var(--border-1); background: var(--glass-1);
  margin-bottom: 5px; text-decoration: none;
  transition: all .2s; cursor: pointer;
}
.proj-paper-item:hover { background: var(--glass-2); border-color: var(--border-a); }
.pp-badge {
  font-family: var(--f-mono); font-size: 10px; padding: 2px 6px;
  border-radius: 4px; border: 1px solid; letter-spacing: .05em;
  white-space: nowrap; flex-shrink: 0; align-self: flex-start; margin-top: 1px;
}
.pp-badge.scie { border-color: rgba(126,200,255,.3); color: var(--a1); background: rgba(126,200,255,.06); }
.pp-badge.ssci { border-color: rgba(167,139,250,.3); color: var(--a2); background: rgba(167,139,250,.06); }
.pp-badge.ei   { border-color: rgba(52,212,168,.3);  color: var(--a3); background: rgba(52,212,168,.06); }
.pp-text {
  font-family: var(--f-mono); font-size: 12px; color: var(--t2);
  line-height: 1.6;
}
.pp-text em { font-style: normal; color: var(--t3); }
.proj-outcome {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 6px;
  margin-top: auto; padding-top: 14px;
  border-top: 1px solid var(--border-1);
}
.proj-outcome-stat {
  background: var(--glass-2); border: 1px solid var(--border-1);
  border-radius: var(--r-sm); padding: 10px 12px; text-align: center;
}
.pos-n { font-family: var(--f-display); font-size: 16px; font-weight: 700; line-height: 1; margin-bottom: 3px; }
.pos-l { font-family: var(--f-mono); font-size: 11px; color: var(--t3); letter-spacing: .04em; line-height: 1.4; }

/* responsive */



/* ════════════════════════════════════════
   PORTFOLIO GALLERY
════════════════════════════════════════ */
.gal-tabs {
  display: flex; gap: 6px; margin-bottom: 28px; flex-wrap: wrap;
}
.gal-tab {
  font-family: var(--f-mono); font-size: 11.5px; padding: 8px 20px;
  border-radius: 100px; border: 1px solid var(--border-1);
  color: var(--t2); background: var(--glass-1); cursor: pointer;
  transition: all .22s; letter-spacing: .05em; display: flex; align-items: center; gap: 7px;
}
.gal-tab:hover { background: var(--glass-2); border-color: var(--border-2); color: var(--t0); }
.gal-tab.on {
  background: var(--glass-3); border-color: var(--border-a); color: var(--t0);
  box-shadow: 0 0 18px rgba(126,200,255,0.08);
}
.gal-tab .tab-dot {
  width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
}
.gal-tab:nth-child(1) .tab-dot { background: var(--a1); }
.gal-tab:nth-child(2) .tab-dot { background: var(--a2); }
.gal-tab:nth-child(3) .tab-dot { background: var(--a3); }
.gal-tab:nth-child(4) .tab-dot { background: var(--a4); }
.gal-tab .tab-count {
  font-size: 9.5px; color: var(--t3); margin-left: 2px;
}

/* Masonry-style grid */
.gal-grid {
  columns: 3; column-gap: 10px;
  transition: opacity .3s ease;
}
.gal-grid.fading { opacity: 0; }
.gal-item {
  break-inside: avoid; margin-bottom: 10px;
  border-radius: var(--r-lg); overflow: hidden;
  border: 1px solid var(--border-1); cursor: pointer;
  position: relative; background: var(--glass-1);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), border-color .25s, box-shadow .25s;
}
.gal-item:hover {
  transform: translateY(-4px) scale(1.01);
  border-color: var(--border-a);
  box-shadow: 0 16px 48px rgba(0,0,0,0.35), 0 0 0 1px rgba(126,200,255,0.06);
  z-index: 2;
}
.gal-item:hover .gal-overlay { opacity: 1; }
.gal-item:hover .gal-img { transform: scale(1.04); }

/* Placeholder image with canvas rendering */
.gal-img-wrap { position: relative; overflow: hidden; }
.gal-img {
  width: 100%; display: block;
  transition: transform .4s ease;
  aspect-ratio: auto;
}
.gal-img-canvas { width: 100%; display: block; }

.gal-overlay {
  position: absolute; inset: 0; opacity: 0; transition: opacity .25s;
  background: linear-gradient(to top, rgba(7,11,18,0.88) 0%, rgba(7,11,18,0.3) 50%, transparent 100%);
  display: flex; flex-direction: column; justify-content: flex-end; padding: 16px;
}
.gal-ov-cat {
  font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .1em;
  margin-bottom: 5px; text-transform: uppercase;
}
.gal-ov-title { font-family: var(--f-display); font-size: 14px; font-weight: 600; color: var(--t0); line-height: 1.3; margin-bottom: 4px; }
.gal-ov-sub { font-family: var(--f-mono); font-size: 10px; color: var(--t2); line-height: 1.5; }

.gal-meta {
  padding: 12px 14px;
  display: flex; align-items: center; justify-content: space-between;
}
.gal-meta-title { font-size: 12.5px; font-weight: 500; color: var(--t1); line-height: 1.35; }
.gal-meta-badge {
  font-family: var(--f-mono); font-size: 9.5px; padding: 3px 9px;
  border-radius: 100px; border: 1px solid; letter-spacing: .04em;
  white-space: nowrap; flex-shrink: 0; margin-left: 8px;
}
.gal-meta-badge.dt  { border-color: rgba(126,200,255,.3); color: var(--a1); }
.gal-meta-badge.id  { border-color: rgba(167,139,250,.3); color: var(--a2); }
.gal-meta-badge.ar  { border-color: rgba(52,212,168,.3);  color: var(--a3); }
.gal-meta-badge.xr  { border-color: rgba(251,191,36,.3);  color: var(--a4); }

/* Upload CTA */
.gal-upload-hint {
  border: 1px dashed var(--border-2); border-radius: var(--r-lg);
  padding: 32px; text-align: center; margin-top: 24px;
  background: var(--glass-1); backdrop-filter: blur(8px);
}
.gal-upload-hint p { font-family: var(--f-mono); font-size: 12px; color: var(--t3); line-height: 1.7; }
.gal-upload-hint strong { color: var(--t2); }

/* Lightbox */
#gal-lightbox {
  position: fixed; inset: 0; z-index: 8000;
  background: rgba(7,11,18,0.92); backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .3s;
}
#gal-lightbox.open { opacity: 1; pointer-events: auto; }
.lb-box {
  max-width: 880px; width: 90%; position: relative;
  transform: scale(0.95); opacity: 0; transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .3s;
}
#gal-lightbox.open .lb-box { transform: scale(1); opacity: 1; }
.lb-canvas-wrap {
  border-radius: var(--r-xl); overflow: hidden;
  border: 1px solid var(--border-2);
  box-shadow: 0 40px 100px rgba(0,0,0,0.6);
}
.lb-canvas { width: 100%; display: block; max-height: 70vh; }
.lb-info { padding: 18px 4px 0; }
.lb-cat { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .12em; margin-bottom: 5px; }
.lb-title { font-family: var(--f-display); font-size: 22px; font-weight: 700; color: var(--t0); margin-bottom: 5px; }
.lb-desc { font-size: 13.5px; color: var(--t2); line-height: 1.8; }
.lb-close {
  position: absolute; top: -14px; right: -14px; width: 36px; height: 36px;
  border-radius: 50%; border: 1px solid var(--border-2); background: var(--glass-3);
  color: var(--t1); font-size: 16px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s; backdrop-filter: blur(8px);
}
.lb-close:hover { border-color: var(--a1); color: var(--a1); }
.lb-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--border-2); background: var(--glass-3);
  color: var(--t1); font-size: 18px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s; backdrop-filter: blur(8px);
}
.lb-nav:hover { border-color: var(--a1); color: var(--a1); }
.lb-prev { left: -52px; }
.lb-next { right: -52px; }



/* ── Real image gallery enhancements ── */
.gal-img-real {
  width: 100%; display: block; object-fit: cover;
  aspect-ratio: 16/10;
  transition: transform .4s ease;
}
.gal-item:hover .gal-img-real { transform: scale(1.04); }

/* multi-image carousel */
.gal-carousel { position: relative; overflow: hidden; }
.gal-carousel-inner { display: flex; transition: transform .4s ease; }
.gal-carousel-slide { min-width: 100%; }
.gal-carousel-dots {
  position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 5px;
}
.gal-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: rgba(255,255,255,0.4); cursor: pointer; transition: background .2s;
}
.gal-dot.on { background: rgba(255,255,255,0.9); }
.gal-carousel-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(7,11,18,0.55); border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.7); font-size: 13px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .2s;
}
.gal-carousel:hover .gal-carousel-btn { opacity: 1; }
.gal-carousel-btn.prev { left: 6px; }
.gal-carousel-btn.next { right: 6px; }

/* award badge on card */
.gal-award-badge {
  position: absolute; top: 10px; right: 10px;
  font-family: var(--f-mono); font-size: 9px; padding: 3px 9px;
  border-radius: 100px; background: rgba(7,11,18,0.75);
  backdrop-filter: blur(6px); border: 1px solid rgba(251,191,36,.35);
  color: var(--a4); letter-spacing: .04em; pointer-events: none;
}

/* lightbox real image */
.lb-real-img { width: 100%; display: block; max-height: 70vh; object-fit: contain; background: #060a10; }
.lb-carousel { position: relative; }
.lb-carousel-inner { display: flex; transition: transform .4s ease; }
.lb-carousel-slide { min-width: 100%; }
.lb-carousel-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(7,11,18,0.65); border: 1px solid var(--border-2);
  color: var(--t1); font-size: 18px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: all .2s;
}
.lb-carousel-btn:hover { border-color: var(--a1); color: var(--a1); }
.lb-carousel-btn.prev { left: -48px; }
.lb-carousel-btn.next { right: -48px; }
.lb-award { display: inline-block; margin-top: 8px; font-family: var(--f-mono); font-size: 11px;
  padding: 4px 12px; border-radius: 100px; border: 1px solid rgba(251,191,36,.3);
  color: var(--a4); background: rgba(251,191,36,.06); }

/* category filter tabs update */
.gal-tab .tab-count { font-size: 10px; color: var(--t3); margin-left: 2px; }


/* ════════════════════════════════════════
   PRACTICE EXPERIENCE
════════════════════════════════════════ */
.practice-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.practice-group {
  background: var(--glass-1); backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--border-1); border-radius: var(--r-lg);
  padding: 20px 22px; transition: all .3s;
}
.practice-group:hover { background: var(--glass-2); border-color: var(--border-2); }
.pg-label {
  font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .1em;
  text-transform: uppercase; margin-bottom: 14px; padding-bottom: 10px;
  border-bottom: 1px solid var(--border-1);
  display: flex; align-items: center; gap: 8px;
}
.pg-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.pg-items { display: flex; flex-direction: column; gap: 7px; }
.pg-item {
  display: grid; grid-template-columns: 38px 1fr auto; gap: 8px;
  align-items: baseline; padding: 5px 0; border-bottom: 1px solid var(--border-1);
  transition: all .18s;
}
.pg-item:last-child { border-bottom: none; padding-bottom: 0; }
.pg-item:hover { padding-left: 4px; }
.pg-yr { font-family: var(--f-mono); font-size: 10px; color: var(--t3); flex-shrink: 0; }
.pg-title { font-size: 13px; font-weight: 500; color: var(--t1); line-height: 1.4; }
.pg-cat { font-family: var(--f-mono); font-size: 9.5px; color: var(--t3); text-align: right; white-space: nowrap; }



/* ── Avatar photo ── */
.profile-hero-img {
  width: 100%; display: block;
  aspect-ratio: 360 / 260;
  object-fit: cover;
  object-position: center 20%;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
}
.profile-hero-wrap {
  position: relative; overflow: hidden;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  margin: -32px -32px 20px -32px;
}
.profile-hero-gradient {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom,
    transparent 35%,
    rgba(7,11,18,0.45) 65%,
    rgba(7,11,18,0.92) 100%);
  pointer-events: none;
}
.profile-hero-name-block {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 16px 20px 14px;
}
.profile-hero-name {
  font-family: var(--f-display); font-size: 22px; font-weight: 700;
  color: rgba(255,255,255,0.96); line-height: 1.2; margin-bottom: 2px;
}
.profile-hero-name-en {
  font-family: var(--f-mono); font-size: 11px;
  color: rgba(255,255,255,0.55); letter-spacing: .06em;
}
.avatar-photo { display: none; }
.about-pi-card {
  display: flex; align-items: center; gap: 16px;
  background: var(--glass-2);
  border: 1px solid rgba(126,200,255,.2);
  border-radius: var(--r-lg); padding: 18px 20px;
  margin-bottom: 16px;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.about-pi-card .av-wrap {
  position: relative; flex-shrink: 0;
  width: 72px; height: 72px;
}
.about-pi-card .av-ring {
  position: absolute; inset: -4px; border-radius: 50%;
  border: 1.5px solid rgba(126,200,255,.2);
  background: conic-gradient(from 0deg, rgba(126,200,255,.3), transparent 55%, rgba(167,139,250,.25), transparent);
  animation: av-spin 14s linear infinite;
}
.about-pi-card img {
  width: 72px; height: 72px; border-radius: 50%;
  object-fit: cover; object-position: center 10%;
  border: 2px solid rgba(126,200,255,.45);
  box-shadow: 0 0 0 3px rgba(126,200,255,.08), 0 4px 20px rgba(0,0,0,.5);
  position: relative; z-index: 1; display: block;
}
@keyframes av-spin { to { transform: rotate(360deg); } }
.profile-hero-wrap::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 50%);
  pointer-events: none;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
}
.profile-card:hover .profile-hero-img {
  transform: scale(1.03);
  transition: transform .6s cubic-bezier(.34,1.56,.64,1);
}
.profile-hero-img {
  transition: transform .6s ease;
}


/* ═══════════════════════════════════════════
   HAMBURGER MENU (mobile)
═══════════════════════════════════════════ */
.nav-hamburger {
  display: none; flex-direction: column; gap: 5px;
  cursor: pointer; padding: 8px; border-radius: 8px;
  background: transparent; border: 1px solid transparent;
  transition: all .2s;
}
.nav-hamburger:hover { border-color: var(--border-2); background: var(--glass-2); }
.nav-hamburger span {
  display: block; width: 20px; height: 1.5px;
  background: var(--t1); border-radius: 2px;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), opacity .2s;
  transform-origin: center;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.mobile-nav-overlay {
  display: none; position: fixed; inset: 0; z-index: 490;
  background: rgba(7,11,18,0.6); backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px); opacity: 0;
  transition: opacity .3s;
}
.mobile-nav-overlay.open { opacity: 1; }
.mobile-nav-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 495;
  width: min(300px, 85vw);
  background: rgba(9,14,24,0.97); backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  border-left: 1px solid var(--border-2);
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
  display: flex; flex-direction: column;
  padding: 80px 28px 36px;
  gap: 4px; overflow-y: auto;
}
.mobile-nav-drawer.open { transform: translateX(0); }
.mobile-nav-link {
  font-family: var(--f-mono); font-size: 13px; color: var(--t2);
  text-decoration: none; letter-spacing: .05em;
  padding: 12px 16px; border-radius: 10px;
  border: 1px solid transparent;
  display: flex; align-items: center; gap: 10px;
  transition: all .2s;
}
.mobile-nav-link:hover, .mobile-nav-link.active {
  color: var(--t0); background: var(--glass-2); border-color: var(--border-2);
}
.mobile-nav-link .mn-num { font-size: 10px; color: var(--t3); letter-spacing: .12em; min-width: 24px; }
.mobile-nav-divider { height: 1px; background: var(--border-1); margin: 8px 0; }
.mobile-nav-footer {
  margin-top: auto; font-family: var(--f-mono); font-size: 11px; color: var(--t3);
  padding-top: 20px; border-top: 1px solid var(--border-1);
}
.mobile-lang-pill {
  display: flex; border-radius: 100px; border: 1px solid var(--border-2);
  background: var(--glass-1); overflow: hidden; margin-top: 14px;
}





/* ══════════════════════════════════════
   VISITOR COUNTER
══════════════════════════════════════ */
#visitor-counter {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9000;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  background: var(--glass-2);
  border: 1px solid var(--border-1);
  border-radius: 100px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--t3);
  opacity: 0;
  transition: opacity 0.6s ease 1.2s;
  pointer-events: none;
  user-select: none;
}
#visitor-counter.ready { opacity: 1; }
.vc-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--a3);
  box-shadow: 0 0 5px var(--a3);
  animation: vc-blink 2.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes vc-blink {
  0%,100% { opacity: 1; }
  50%      { opacity: 0.25; }
}
#vc-count {
  color: var(--a1);
  font-weight: 700;
}

/* ══════════════════════════════════════
   LAB EQUIPMENT SECTION
══════════════════════════════════════ */
.equip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 32px;
}
.equip-card {
  background: var(--glass-2);
  border: 1px solid var(--border-1);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: background .25s, border-color .25s, transform .25s, box-shadow .25s;
  display: flex; flex-direction: column;
}
.equip-card:hover {
  background: var(--glass-3);
  border-color: var(--border-2);
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.equip-img-wrap {
  width: 100%; aspect-ratio: 16/9;
  overflow: hidden;
  background: #0a0f18;
  display: flex; align-items: center; justify-content: center;
  position: relative;
}
.equip-img-wrap img {
  width: 100%; height: 100%;
  object-fit: contain; padding: 10px;
  transition: transform .4s ease;
  filter: drop-shadow(0 4px 16px rgba(0,0,0,0.5));
}
.equip-card:hover .equip-img-wrap img { transform: scale(1.06); }
.equip-icon-fb { font-size: 40px; opacity: .35; }
.equip-body { padding: 16px 16px 14px; flex: 1; display: flex; flex-direction: column; }
.equip-cat {
  font-family: var(--f-mono); font-size: 9px; letter-spacing: .16em;
  text-transform: uppercase; margin-bottom: 6px;
  display: flex; align-items: center; gap: 6px;
}
.equip-cat::before {
  content: ''; display: inline-block; width: 14px; height: 1px;
  background: currentColor; opacity: .5;
}
.equip-name { font-family: var(--f-display); font-size: 13.5px; font-weight: 700; color: var(--t0); margin-bottom: 2px; line-height: 1.25; }
.equip-model { font-family: var(--f-mono); font-size: 9.5px; color: var(--t3); letter-spacing: .04em; margin-bottom: 9px; }
.equip-spec { font-size: 11px; color: var(--t2); line-height: 1.55; flex: 1; }
.equip-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 11px; }
.equip-tag { font-family: var(--f-mono); font-size: 9px; letter-spacing: .05em; padding: 2px 8px; border-radius: 100px; border: 1px solid var(--border-2); color: var(--t3); background: var(--glass-1); }
.equip-qty { position: absolute; top: 8px; right: 8px; font-family: var(--f-mono); font-size: 9px; letter-spacing: .08em; background: rgba(7,11,18,.75); border: 1px solid var(--border-2); border-radius: 100px; padding: 2px 8px; color: var(--t3); }
.equip-card.c-vr  { border-top: 2px solid var(--a1); }
.equip-card.c-eye { border-top: 2px solid var(--a2); }
.equip-card.c-lid { border-top: 2px solid var(--a3); }
.equip-card.c-gpu { border-top: 2px solid var(--a4); }
.equip-card.c-mob { border-top: 2px solid rgba(126,200,255,.45); }
.equip-card.c-vr  .equip-cat { color: var(--a1); }
.equip-card.c-eye .equip-cat { color: var(--a2); }
.equip-card.c-lid .equip-cat { color: var(--a3); }
.equip-card.c-gpu .equip-cat { color: var(--a4); }
.equip-divider { grid-column: 1/-1; border-top: 1px solid var(--border-1); padding-top: 20px; margin-top: 6px; font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; color: var(--t3); text-transform: uppercase; }
.equip-summary { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 28px; padding: 18px 22px; background: var(--glass-1); border: 1px solid var(--border-1); border-radius: var(--r-md); }
.equip-stat { text-align: center; }
.equip-stat-n { font-family: var(--f-display); font-size: 24px; font-weight: 800; line-height: 1; }
.equip-stat-l { font-family: var(--f-mono); font-size: 9px; letter-spacing: .1em; color: var(--t3); margin-top: 4px; text-transform: uppercase; }
.equip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 32px;
}
.equip-card {
  background: var(--glass-2);
  border: 1px solid var(--border-1);
  border-radius: var(--r-md);
  padding: 20px 18px 16px;
  transition: background .25s, border-color .25s, transform .25s;
  cursor: default;
  position: relative;
  overflow: hidden;
}
.equip-card::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.04) 0%, transparent 60%);
  pointer-events: none;
}
.equip-card:hover {
  background: var(--glass-3);
  border-color: var(--border-2);
  transform: translateY(-2px);
}
.equip-cat {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.equip-cat::before {
  content: '';
  display: inline-block;
  width: 18px; height: 1px;
  background: currentColor;
  opacity: .5;
}
.equip-icon {
  font-size: 28px;
  margin-bottom: 10px;
  line-height: 1;
}
.equip-name {
  font-family: var(--f-display);
  font-size: 14px;
  font-weight: 700;
  color: var(--t0);
  margin-bottom: 3px;
  line-height: 1.2;
}
.equip-model {
  font-family: var(--f-mono);
  font-size: 10px;
  color: var(--t3);
  letter-spacing: .05em;
  margin-bottom: 10px;
}
.equip-spec {
  font-size: 11.5px;
  color: var(--t2);
  line-height: 1.55;
}
.equip-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 12px;
}
.equip-tag {
  font-family: var(--f-mono);
  font-size: 9px;
  letter-spacing: .06em;
  padding: 3px 8px;
  border-radius: 100px;
  border: 1px solid var(--border-2);
  color: var(--t3);
  background: var(--glass-1);
}
/* Colour accent per category */
.equip-card.c-vr  { border-top: 2px solid var(--a1); }
.equip-card.c-eye { border-top: 2px solid var(--a2); }
.equip-card.c-lid { border-top: 2px solid var(--a3); }
.equip-card.c-gpu { border-top: 2px solid var(--a4); }
.equip-card.c-sw  { border-top: 2px solid rgba(126,200,255,.35); }
.equip-card.c-vr  .equip-cat { color: var(--a1); }
.equip-card.c-eye .equip-cat { color: var(--a2); }
.equip-card.c-lid .equip-cat { color: var(--a3); }
.equip-card.c-gpu .equip-cat { color: var(--a4); }
/* Divider row for software */
.equip-divider {
  grid-column: 1 / -1;
  border-top: 1px solid var(--border-1);
  padding-top: 22px;
  margin-top: 8px;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .18em;
  color: var(--t3);
  text-transform: uppercase;
}


/* ══════════════════════════════════════════
   BACK TO TOP BUTTON (抽離自 inline style)
══════════════════════════════════════════ */
#backToTop {
  position: fixed; right: 20px; bottom: 20px; z-index: 450;
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(7,11,18,.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: #fff; font-size: 18px; cursor: pointer;
  display: none; align-items: center; justify-content: center;
  transition: transform .2s, background .2s, opacity .3s;
  opacity: 0;
}
#backToTop:hover { transform: translateY(-2px); background: rgba(7,11,18,.85); }

/* ══════════════════════════════════════════
   TWEAKS PANEL (Edit Mode / 抽離自 inline style)
══════════════════════════════════════════ */
#tweaksPanel {
  display: none;
  position: fixed; right: 20px; bottom: 80px; z-index: 500;
  width: 260px;
  background: rgba(10,15,24,.92);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  padding: 16px;
  font-family: var(--f-body);
  color: var(--t1);
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
}
#tweaksPanel .tw-head {
  font-family: var(--f-mono); font-size: 10px; letter-spacing: .14em;
  color: var(--t3); margin-bottom: 12px; text-transform: uppercase;
}
#tweaksPanel .tw-lbl { font-size: 12px; color: var(--t2); margin-bottom: 6px; }
#tweaksPanel .tw-row { display: flex; gap: 6px; margin-bottom: 14px; }
#tweaksPanel .tw-opt {
  flex: 1; padding: 8px; font-size: 11px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  color: var(--t1); cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
}
#tweaksPanel .tw-opt.on {
  background: rgba(255,255,255,.06);
  border-color: rgba(126,200,255,.35);
  color: #fff;
}
#tweaksPanel .tw-check {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; color: var(--t2); cursor: pointer;
}
#tweaksPanel .tw-check input { accent-color: #7ec8ff; }
/* ══════════════════════════════════════════
   ANIMATIONS · CLICK/SCROLL/PARALLAX/COUNTER/HOVER EFFECTS
══════════════════════════════════════════ */

/* ═══════════════════════════════════════════
   CLICK RIPPLE
═══════════════════════════════════════════ */
.ripple-container { position: fixed; inset: 0; pointer-events: none; z-index: 8000; overflow: hidden; }
.ripple {
  position: absolute; border-radius: 50%;
  transform: translate(-50%,-50%) scale(0);
  background: radial-gradient(circle, rgba(126,200,255,0.25) 0%, rgba(126,200,255,0) 70%);
  animation: ripple-out .8s cubic-bezier(.25,.46,.45,.94) forwards;
  pointer-events: none;
}
@keyframes ripple-out {
  to { transform: translate(-50%,-50%) scale(1); opacity: 0; }
}

/* ═══════════════════════════════════════════
   CLICK SHOCKWAVE (card)
═══════════════════════════════════════════ */
@keyframes card-press {
  0%   { transform: perspective(800px) scale(1); }
  30%  { transform: perspective(800px) scale(0.96); box-shadow: 0 0 30px rgba(126,200,255,0.2), inset 0 0 20px rgba(126,200,255,0.06); }
  100% { transform: perspective(800px) scale(1); }
}
.card-clicked { animation: card-press .4s cubic-bezier(.4,0,.2,1) !important; }

/* ═══════════════════════════════════════════
   CURSOR CLICK BURST
═══════════════════════════════════════════ */
#cursor-outer.clicking {
  width: 80px; height: 80px;
  border-color: rgba(126,200,255,0.9);
  transition: width .12s, height .12s, border-color .12s;
}

/* ═══════════════════════════════════════════
   SCROLL PROGRESS BAR
═══════════════════════════════════════════ */
#scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 600;
  background: transparent; pointer-events: none;
}
#scroll-progress-fill {
  height: 100%; width: 0%;
  background: linear-gradient(90deg, var(--a1), var(--a2), var(--a3), var(--a6));
  transition: width .1s linear;
  box-shadow: 0 0 12px rgba(126,200,255,0.6);
  border-radius: 0 2px 2px 0;
}

/* ═══════════════════════════════════════════
   PARALLAX SECTION HEADERS
═══════════════════════════════════════════ */
.sec-h2 { will-change: transform; }
.sec-label { will-change: transform; }

/* ═══════════════════════════════════════════
   SCROLL-DRIVEN FADE + SLIDE VARIANTS
═══════════════════════════════════════════ */
.rv-left  { opacity: 0; transform: translateX(-24px) translateY(8px); transition: opacity .65s ease, transform .65s ease; }
.rv-right { opacity: 0; transform: translateX(24px) translateY(8px);  transition: opacity .65s ease, transform .65s ease; }
.rv-scale { opacity: 0; transform: scale(0.93);                        transition: opacity .65s ease, transform .65s cubic-bezier(.34,1.56,.64,1); }
.rv-left.in, .rv-right.in, .rv-scale.in { opacity: 1; transform: none; }

/* ═══════════════════════════════════════════
   MAGNETIC BUTTON EFFECT
═══════════════════════════════════════════ */
.btn-primary, .btn-secondary, .nav-cta { will-change: transform; }

/* ═══════════════════════════════════════════
   SECTION TRANSITION DIVIDER
═══════════════════════════════════════════ */
.section-divider {
  position: relative; height: 1px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--border-2), transparent);
  overflow: visible;
}
.section-divider::after {
  content: ''; position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 0; height: 1px;
  background: linear-gradient(90deg, var(--a1), var(--a2), var(--a3));
  transition: width 1s ease;
  box-shadow: 0 0 12px rgba(126,200,255,0.4);
}
.section-divider.lit::after { width: 30%; }

/* ═══════════════════════════════════════════
   STAGGER LETTER ANIMATION (h1)
═══════════════════════════════════════════ */
.char-wrap { display: inline-block; overflow: hidden; }
.char {
  display: inline-block;
  transform: translateY(100%);
  opacity: 0;
  animation: char-in .7s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes char-in {
  to { transform: translateY(0); opacity: 1; }
}

/* ═══════════════════════════════════════════
   SCROLL-LINKED HERO PARALLAX
═══════════════════════════════════════════ */
.hero-left, .profile-card { will-change: transform, opacity; }

/* ═══════════════════════════════════════════
   GLOW PULSE on active nav link
═══════════════════════════════════════════ */
.nav-links a.active {
  position: relative;
}
.nav-links a.active::after {
  content: '';
  position: absolute; bottom: -2px; left: 14px; right: 14px; height: 1px;
  background: var(--a1);
  box-shadow: 0 0 6px var(--a1);
  animation: nav-glow 2s ease-in-out infinite;
}
@keyframes nav-glow { 0%,100%{opacity:.6} 50%{opacity:1} }

/* ═══════════════════════════════════════════
   FLOATING PARTICLES (click-emitted)
═══════════════════════════════════════════ */
.click-particle {
  position: fixed; pointer-events: none; z-index: 7000; border-radius: 50%;
  animation: particle-fly 1s cubic-bezier(.25,.46,.45,.94) forwards;
}
@keyframes particle-fly {
  0%   { opacity: 1; transform: translate(0,0) scale(1); }
  100% { opacity: 0; transform: var(--ptx, translate(40px,-60px)) scale(0); }
}

/* ═══════════════════════════════════════════
   SCROLL SNAP SECTION HINT
═══════════════════════════════════════════ */
.in-view-glow {
  transition: box-shadow .8s ease;
}
.in-view-glow.in {
  box-shadow: 0 0 60px rgba(126,200,255,0.04);
}

/* ═══════════════════════════════════════════
   BTN CLICK FLASH
═══════════════════════════════════════════ */
@keyframes btn-flash {
  0%  { box-shadow: 0 0 0 0 rgba(126,200,255,0.7); }
  50% { box-shadow: 0 0 0 12px rgba(126,200,255,0); }
  100%{ box-shadow: 0 0 0 0 rgba(126,200,255,0); }
}
.btn-flashing { animation: btn-flash .5s ease !important; }

/* ═══════════════════════════════════════════
   SCROLL COUNTER (for stats)
═══════════════════════════════════════════ */
.counting { color: var(--a1); }

/* ═══════════════════════════════════════════
   MAGNETIC HOVER TRAIL
═══════════════════════════════════════════ */
.trail-dot {
  position: fixed; pointer-events: none; z-index: 7500;
  border-radius: 50%; background: var(--a1);
  transform: translate(-50%,-50%);
  animation: trail-fade .6s ease forwards;
}
@keyframes trail-fade { to { opacity: 0; transform: translate(-50%,-50%) scale(0); } }

/* ═══════════════════════════════════════════
   ACTIVE SECTION HERO TEXT SHIFT
═══════════════════════════════════════════ */
.hero-h1 .line1 {
  transition: letter-spacing .6s ease;
}
body.scrolled-past-hero .hero-h1 .line1 {
  letter-spacing: -.01em;
}


@font-face {
  font-family: 'Dreamscape';
  src: url(data:font/ttf;base64,AAEAAAARAQAABAAQTFRTSLVMezwAAAOIAAAAaE9TLzKC6h0gAAABmAAAAGBWRE1Ycc55ZQAAA/AAAAXgY21hcJlCn2sAABMwAAAC2mN2dCAAmAYUAAAX0AAAABZmcGdtBlmcNwAAFgwAAAFzZ2x5ZjlttmkAABfoAABMVGhkbXgH6ymBAAAJ0AAACWBoZWFkC4wGewAAARwAAAA2aGhlYQdHA+MAAAFUAAAAJGhtdHje8g/DAAAB+AAAAZBrZXJuKrcpkgAAZQgAAA0ObG9jYQSP8U4AAGQ8AAAAym1heHACdAI9AAABeAAAACBuYW1lbQutRAAAchgAAAEjcG9zdP+4ADIAAHM8AAAAIHByZXC2J1zuAAAXgAAAAE4AAQAAAAEAAFDXVzRfDzz1ABkD6AAAAADUBGSzAAAAANQIXfYAAP+FBFIDZwAAAAkAAgAAAAAAAAABAAAC7v8GAAAEcwAFAAUEUgABAAAAAAAAAAAAAAAAAAAAZAABAAAAZACAAAUAAAAAAAEAAAAAAAoAAAIAAbwAAAAAAAMCOgGQAAUABAK8AooAAACMArwCigAAAd0AMgD6AAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAHB5cnMAQAAgIB0C7v8GAAADZwB7AAAAAQAAAAAB9AK8AAAAIAAAASgAAAKNADwCogAeArQALwJUADwCOAA8AsIAJQK9ADwA6wA8AooADQKvADwCOQAwA3oALQKtADwDTgApAnsAMQNIACUCmwAwAq4AHgJ1ABgCpAA1AvEAFwRzACECpQAwAnMAFQK1ADkCYgAzATwACQJyACwCXwAqAnMABwJSAC0CYQAzAiUALwJ/ACwCXQAnAvAAFgKNADwCogAeArQALwJUADwCOAA8AsIAJQK9ADwA6wA8AooADQKvADwCOQAwA3oALQKtADwDTgApAnsAMQNIACUCmwAwAq4AHgJ1ABgCpAA1AvEAFwRzACECpQAwAnMAFQK1ADkA5gA6AX0ANwMaACECnAAbArUAMgKvABoA0wAwARgAHgEYACQBJAAdAawAEwDUADAA1QAtAcAAPADsADwCGAAHAOwAPAKEAAUChgA8AfsAPAH+ABEDhgAqAQgANgIYAAcBCAAkAbcAGAKTADwAtAANATsADwE8ACMA5wA8AacAEQDTADAA1QAxAX0ANwF+ADgBKAAAAvAAFgAAAGQBOwErLyE3O0wzAQE7N0wiKzcmN0wBAQEBATtMO0wcO0QBAUwBOwErLyE3O0wzAQE7N0wiKzcmN0wBAQEBAUQ3AUxEAUwBOwEBOzsBTAFMAQEBAUQBAQEBAQEvAQE7TAE3NwEBAAAAAQABAQEBAQAMAPgI/wAIAAf//wAJAAj//gAKAAn//gALAAr//gAMAAv//gANAAz//gAOAA3//gAPAA7//gAQAA7//gARAA///QASABD//QATABH//QAUABL//QAVABP//QAWABT//QAXABX//QAYABX//QAZABb//AAaABf//AAbABj//AAcABn//AAdABr//AAeABv//AAfABz//AAgABz//AAhAB3/+wAiAB7/+wAjAB//+wAkACD/+wAlACH/+wAmACL/+wAnACL/+wAoACP/+wApACT/+gAqACX/+gArACb/+gAsACf/+gAtACj/+gAuACn/+gAvACn/+gAwACr/+gAxACv/+QAyACz/+QAzAC3/+QA0AC7/+QA1AC//+QA2ADD/+QA3ADD/+QA4ADH/+QA5ADL/+AA6ADP/+AA7ADT/+AA8ADX/+AA9ADb/+AA+ADf/+AA/ADf/+ABAADj/+ABBADn/+ABCADr/9wBDADv/9wBEADz/9wBFAD3/9wBGAD3/9wBHAD7/9wBIAD//9wBJAED/9wBKAEH/9gBLAEL/9gBMAEP/9gBNAET/9gBOAET/9gBPAEX/9gBQAEb/9gBRAEf/9gBSAEj/9QBTAEn/9QBUAEr/9QBVAEv/9QBWAEv/9QBXAEz/9QBYAE3/9QBZAE7/9QBaAE//9ABbAFD/9ABcAFH/9ABdAFL/9ABeAFL/9ABfAFP/9ABgAFT/9ABhAFX/9ABiAFb/8wBjAFf/8wBkAFj/8wBlAFj/8wBmAFn/8wBnAFr/8wBoAFv/8wBpAFz/8wBqAF3/8gBrAF7/8gBsAF//8gBtAF//8gBuAGD/8gBvAGH/8gBwAGL/8gBxAGP/8gByAGT/8QBzAGX/8QB0AGb/8QB1AGb/8QB2AGf/8QB3AGj/8QB4AGn/8QB5AGr/8QB6AGv/8AB7AGz/8AB8AG3/8AB9AG3/8AB+AG7/8AB/AG//8ACAAHD/8ACBAHH/8ACCAHL/8ACDAHP/7wCEAHP/7wCFAHT/7wCGAHX/7wCHAHb/7wCIAHf/7wCJAHj/7wCKAHn/7wCLAHr/7gCMAHr/7gCNAHv/7gCOAHz/7gCPAH3/7gCQAH7/7gCRAH//7gCSAID/7gCTAIH/7QCUAIH/7QCVAIL/7QCWAIP/7QCXAIT/7QCYAIX/7QCZAIb/7QCaAIf/7QCbAIj/7ACcAIj/7ACdAIn/7ACeAIr/7ACfAIv/7ACgAIz/7AChAI3/7ACiAI7/7ACjAI7/6wCkAI//6wClAJD/6wCmAJH/6wCnAJL/6wCoAJP/6wCpAJT/6wCqAJX/6wCrAJX/6gCsAJb/6gCtAJf/6gCuAJj/6gCvAJn/6gCwAJr/6gCxAJv/6gCyAJz/6gCzAJz/6QC0AJ3/6QC1AJ7/6QC2AJ//6QC3AKD/6QC4AKH/6QC5AKL/6QC6AKP/6QC7AKP/6AC8AKT/6AC9AKX/6AC+AKb/6AC/AKf/6ADAAKj/6ADBAKn/6ADCAKn/6ADDAKr/6ADEAKv/5wDFAKz/5wDGAK3/5wDHAK7/5wDIAK//5wDJALD/5wDKALD/5wDLALH/5wDMALL/5gDNALP/5gDOALT/5gDPALX/5gDQALb/5gDRALf/5gDSALf/5gDTALj/5gDUALn/5QDVALr/5QDWALv/5QDXALz/5QDYAL3/5QDZAL7/5QDaAL7/5QDbAL//5QDcAMD/5ADdAMH/5ADeAML/5ADfAMP/5ADgAMT/5ADhAMT/5ADiAMX/5ADjAMb/5ADkAMf/4wDlAMj/4wDmAMn/4wDnAMr/4wDoAMv/4wDpAMv/4wDqAMz/4wDrAM3/4wDsAM7/4gDtAM//4gDuAND/4gDvANH/4gDwANL/4gDxANL/4gDyANP/4gDzANT/4gD0ANX/4QD1ANb/4QD2ANf/4QD3ANj/4QD4ANn/4QD5ANn/4QD6ANr/4QD7ANv/4QD8ANz/4QD9AN3/4AD+AN7/4AD/AN//4AAAABcAAABoCQoDBgYHBQUHBwMGBgUIBwgHCAcHBgcHCgYGBgYDBgYFBgYFBgYHBgYHBQUHBwMGBgUIBwgHCAcHBgcHCgYGBgMEBwcHBgIDAwMEAgIEAwUDBgYFBQkCBQIEBgIDAwIFAgIEBAMHAAAKCwMHBwcFBgcHAwcHBgkHCQcJBwcHBwgLBwYHBwMHBwYHBwUGBggHBwcFBgcHAwcHBgkHCQcJBwcHBwgLBwYHAwQIBwcHAwMDAwQDAwQDBQMGBgUFCgMFAwQHAgMDAgUDAgQEAwgAAAsNAwcHCAYHCAgDBwgGCggKCAoICAcICA0HBwgHBAcHBgcHBgcHCAcHCAYHCAgDBwgGCggKCAoICAcICA0HBwgDBAkICAgDAwQDBQMDBQMGAwcHBgYKAwYDBQcCAwMDBQMCBAQDCAAADA4ECAgIBwcJCAMICAcLCAoICggICAgJDggICAcECAgICAgHCAcJCAgIBwcJCAMICAcLCAoICggICAgJDggICAMFCggICAMDBAQFAwMFAwYDCAgGBgsDBgMFCAIEBAMGAwMFBQQJAAANDwQJCQoHBwkKBAkJBwwKDAoMCgkJCgoPCQgJCAUJCQkJCQcICQoJCQoHBwkKBAkJBwwKDAoMCgkJCgoPCQgJBAYKCQoJAwQFBAYDAwYEBwQICAcHDQMHAwYJAgQEAwcDAwYGBAoAAA8RBAoKCwgJCwsECgoJDgsNCw0LCwoLCxEKCQoJBQoKCgoKCAoKCwoKCwgJCwsECgoJDgsNCw0LCwoLCxEKCQoEBgwLCwoEBAUEBgQEBwQIBAoKCAgOBAgEBwoDBQUDBwQDBgYECwAAEBIFCgsMCgoMCwQLCwkOCw4LDgsLCwsMEgsKCwoFCwoKCgoJCgoMCgsMCgoMCwQLCwkOCw4LDgsLCwsMEgsKCwQGDQsLCwQEBQUHBAQHBAkECgoICA8ECQQHCwMFBQQIBAMGBgUMAAAREwULCwwKCgwMBAsMCg8MDwwPDAwLDA0TDAsMCgULCwsLCwkLCw0LCwwKCgwMBAsMCg8MDwwPDAwLDA0TDAsMBAcODAwMBAUFBQcEBAgECQQLCwkJEAQJBAcLAwYFBAgEBAcHBQ0AABMWBgwNDQwLDg0EDA0LEQ0QDRANDQwNDhYNDA0MBgwMCwwMCgwLDgwNDQwLDg0EDA0LEQ0QDRANDQwNDhYNDA0EBw8NDQ0EBQYGCAQECQQKBAwMCgoRBQoFCA0DBwYECQQEBwcGDgAAFRgGDQ4ODAwPDgQNDgwSDhIOEg4ODQ4QGA4NDw0GDQ0NDQ0MDQwQDQ4ODAwPDgQNDgwSDhIOEg4ODQ4QGA4NDwQHEQ4ODgQGBgYJBAQJBAsEDg4LCxMGCwYJDgQHBwUKBAQHBwYQAAAYGwcQEBEODRERBRAQDhURFRAUEBAPEBIbEA8RDgcPDw8PDw0PDxIQ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AAf/6wADAAj/4gADAA3/3QADAA7/9gADABP/1wADABX/wgADABb/mAADABf/ogADABj/ogADABn/zAADACT/wgADADn/zAADADr/twADADv/wgADADz/zAADAD3/4QADAGP/1gAEAAb/1wAEAA7/zAAEABD/ywAEADL/4AAEADUAFQAEADgAKgAFAAMAPwAFAAsAHwAFAA4ACgAFABIAKgAFABMAVAAFABQAFQAFABUAHwAFABgAIAAFABkAKQAFACT/twAFACcAIAAFACwAKgAFAC8ACgAFADUAKQAFADcANAAFADkAHwAFADwAHwAFAGP/1gAGAA7/6gAGABD/1wAGABP/6wAGABX/zAAGABb/zAAGABf/4QAGABj/1gAGADn/4QAGADr/1wAGADv/1wAGADz/4QAGAGP/1wAHAA7/7AAHABD/6wAHADL/6wAIAAcACgAJAAn/7AAJABgAFQAJACT/zAAJAGP/rAAKAAL/rQAKAAb/lwAKAAn/rQAKAA7/jQAKABD/owAKABL/wgAKACb/rAAKAC3/wgAKADL/jgAKADT/rQAKADX/4QAKADb/zAAKADj/1gALAAMAFQALAAUAHwALAAsAPwALAAwAOAALAA0AIAALAA7/zAALAA8APgALABD/1gALABEAKQALABP/yAALABX/ogALABb/lwALABj/rAALABkAFQALACQAKgALACgACgALADL/4QALADn/wQALADr/wgALADz/zAALAD4AFQALAGMAKgAMAAQAFAAMAA7/3AAMAA//9QANAAMABQANAAoANAANAAsAFQANABMAIAAOAAH/1wAOAAT/4QAOAAX/4gAOAAb/4QAOAAf/1gAOAAj/8gAOAAv/1gAOAAz/5AAOAA3/4gAOABD/4gAOABP/1gAOABT/5wAOABX/kQAOABb/kQAOABf/rQAOABj/twAOABn/rQAOACT/wQAOACj/1gAOADf/zAAOADn/rAAOADr/rQAOADv/twAOADz/rAAOAD3/1wAOAEb/wQAOAGP/ogAPAAgACwAPAAn/6wAPAAsAFQAPABIAFQAPABMALgAPABQAFQAPABX/4gAPABb/4QAPABf/1gAPACT/mAAPAC3/1gAPADv/zAAPAGP/mAAQAAH/4QAQAAP/7AAQAAT/1wAQAAX/1gAQAAb/1gAQAAf/1gAQAAj/4gAQAAn/6wAQAAr/1gAQAAv/6wAQAA3/4gAQAA7/4AAQABD/4gAQABH/4QAQABL/4AAQABP/1gAQABX/twAQABb/ogAQABf/wQAQABj/owAQABn/twAQACT/twAQADf/4QAQADn/wQAQADr/rAAQADv/rAAQADz/ogAQAGP/rAARAAb/6wARAAn/7AARAA7/9gARABD/4AARABX/zAARABb/zAARABf/6wARABj/1wARACT/4AARAC3/1gARADn/wQARADr/zAARADv/1gARADz/wgASAAb/6wASAAf/7AASAAj/6wASAA7/4QASABD/wgASABP/7AASABX/wgASABb/zAASABf/twASABj/twASABn/4QASACT/zAASADn/zAASADr/zAASADv/zAASADz/wQASAGP/1wATAAL/4QATAAMAKgATAAQAOAATAAb/1gATAAn/ywATAAsAKgATAA7/4QATAA8APwATABD/zAATABMAIAATACT/ogATACr/zAATADL/twATADT/1gATAGP/mAAUACT/6wAUAGP/8wAVAAL/yAAVAAb/rQAVAAn/wQAVAA7/ugAVABD/twAVABH/4AAVACT/ZAAVACb/zAAVACr/twAVAC3/twAVADL/twAVADT/twAVADb/1gAVAGP/bgAWAAL/ywAWAAX/4QAWAAb/rAAWAAn/bgAWAA7/twAWAA//1gAWABD/wgAWABH/1gAWABL/1gAWACT/MAAWACb/wQAWACr/twAWAC3/mAAWADD/1gAWADH/wQAWADL/zAAWADT/zAAWADX/4QAWADb/1gAWADj/1gAWADv/1gAWAGP/eQAXAAL/1gAXAAX/4QAXAAb/twAXAAn/uwAXAA7/qwAXABD/wgAXABL/1gAXACb/1wAXAC3/1wAXADL/rAAXADT/wQAYAAL/zAAYAAb/wgAYAAn/kQAYAAsAHwAYAA7/mAAYABD/wgAYABL/4AAYACT/mAAYACb/zAAYAC3/mAAYADL/owAYADT/twAYADb/4QAYAGP/jQAZAAL/4QAZAAb/zAAZAA7/mAAZABD/wgAZADL/1wAZADT/wQAZADj/9QAZADr/1wAZADv/1gAZAGP/9QAbABwAIAAcAB0AHwAdABz/1gAeAB3/4QAeAB//4QAfAB4AHwAfACH/4AAgAB3/6wAhABsAKQAhAB7/zAAiABz/6wAjABz/4QAjAB//4QAkACb/1gAkACf/9gAkACr/yQAkADL/kQAkADT/wQAkADb/4QAkADf/jQAkADj/1wAkADn/RQAkADr/WQAkADv/5AAkADz/jgAlACT/1gAlACr/6wAlAC7/6wAlADL/1gAlADT/4QAlADf/4QAlADn/twAlADr/twAlADv/wgAlADz/wgAmACT/1wAmACb/yAAmACn/yAAmACr/yAAmACv/6wAmADL/1wAmADT/1gAmADb/5AAmADj/1wAmADr/5AAmADv/1gAmADz/1wAnACT/zAAnADf/1gAnADn/rAAnADr/rQAnADv/twAnADz/wgAnAD3/yQAoACr/4QAoADL/1gAoADcAHwApACT/zAApACwAHwApADMAFAApADcAKQApADkAKgApADoAHwApADsAHwApADwAHwApAD0AHwAqACT/5AAqADr/4AAqADz/4QArADH/8gArADL/5QArADT/5AAsACcAHwAsACn/5AAsADL/6QAtACT/1gAtADQACwAtADcAHwAuACb/ogAuACr/ugAuAC3/wgAuADL/uAAuADT/rQAvACQAHwAvACUAFAAvACcAKgAvACgAHwAvACwAHwAvADL/1gAvADMAIAAvADf/1gAvADn/wQAvADr/uwAvADz/1wAwADL/8gAwADr/1gAxACYAKQAxACcAFQAxACoAIAAxADUAFQAxADcAIAAxADwANAAyACT/dQAyACX/zAAyACj/5AAyACn/yAAyACv/1gAyACz/1gAyAC//4AAyADD/1gAyADH/5QAyADL/1gAyADT/1gAyADX/4QAyADb/1gAyADf/wQAyADj/1gAyADn/zAAyADr/ogAyADv/gwAyADz/ngAyAD3/nwAzACT/twAzADYAHwAzADcAHwAzADr/1gAzADv/7AA0ACT/rAA0ACv/1wA0ACz/7AA0ADH/yQA0ADL/1gA0ADT/1gA0ADf/yQA0ADj/6wA0ADn/rQA0ADr/kQA0ADv/twA0ADz/twA0AD3/ugA1ACwAFAA1AC3/1wA1ADn/4AA1ADr/zAA1ADv/5AA2ACT/1wA2ACr/6wA2ACz/6gA2ADL/1gA2ADT/5AA2ADf/1gA2ADn/zAA2ADr/uAA2ADv/zAA2ADz/1gA3ACT/twA3ACb/4QA3ACr/zAA3ACsAFQA3AC8AKQA3ADL/wgA3ADT/1gA3ADUAHwA3ADcAHwA3ADwAOAA4ACT/5QA4AC8AKgA4ADAACgA4ADL/7QA4ADMAHwA4ADYAKQA4ADcAKQA5ACT/ZAA5ACb/4QA5ACr/wgA5AC3/yQA5ADL/zAA5ADT/wQA6ACT/PQA6ACb/wgA6ACr/zAA6AC3/iQA6ADD/zAA6ADL/nwA6ADP/4QA6ADT/rQA6ADX/4QA7ACT/1gA7ACb/4AA7ACcAFQA7ACn/1gA7ACr/zAA7AC3/4QA7ADL/kQA7ADT/wgA7AD3/yQA8ACT/jgA8ACb/yAA8ACr/yAA8AC3/nwA8ADL/ogA8ADT/zAA9ACr/1gA9ADL/wQA9ADT/zABFAA7/twBjAAL/wQBjAAb/sgBjAAn/4QBjAA7/rABjABD/rQBjABL/4QBjABP/mABjABT/wgBjABX/ZABjABb/ZABjABf/6wBjABj/mABjACb/yABjACr/zABjADL/zABjADT/twBjADf/rQBjADj/1wBjADn/bgBjADr/WgBjADv/yABjADz/gwAAAAAACgB+AAEAAAAAAAEACgAAAAEAAAAAAAIABwAKAAEAAAAAAAMAEgARAAEAAAAAAAQACgAjAAEAAAAAAAYACgAtAAMAAQQJAAEAFAA3AAMAAQQJAAIADgBLAAMAAQQJAAMAJABZAAMAAQQJAAQAFAB9AAMAAQQJAAYAFACRRHJlYW1zY2FwZVJlZ3VsYXJweXJzOiBEcmVhbXNjYXBlOiBEcmVhbXNjYXBlRHJlYW1zY2FwZQBEAHIAZQBhAG0AcwBjAGEAcABlAFIAZQBnAHUAbABhAHIAcAB5AHIAcwA6ACAARAByAGUAYQBtAHMAYwBhAHAAZQA6ACAARAByAGUAYQBtAHMAYwBhAHAAZQBEAHIAZQBhAG0AcwBjAGEAcABlAAADAAAAAAAA/7UAMgAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype');
  font-display: swap;
}

/* ═══════════════════════════════════════════════
   Dreamscape 字體已在 :root --f-display / --f-mono 變數中設定
   全站所有英文元素自動使用 Dreamscape,中文自動 fallback 到 Noto Sans TC
   ═══════════════════════════════════════════════ */




/* ═══════════════════════════════════════════════════════
   ═══════════ DEEP RESPONSIVE OVERHAUL v2 ═══════════
   覆蓋全站,專為桌機/平板/手機三種裝置深度優化
   ═══════════════════════════════════════════════════════ */

/* ── Fluid Typography (讓字體隨螢幕自動縮放) ── */
:root {
  --pad-page-x: clamp(16px, 4vw, 48px);
  --pad-section-y: clamp(48px, 8vw, 100px);
  --gap-card: clamp(12px, 2vw, 24px);
}

/* ════════════ TABLET (≤ 1024px) ════════════ */

/* ════════════ MOBILE LARGE (≤ 768px) ════════════ */

/* ════════════ MOBILE STANDARD (≤ 480px) ════════════ */

/* ════════════ MOBILE SMALL (≤ 380px) ════════════ */

/* ════════════ TOUCH OPTIMIZATIONS ════════════ */

/* ════════════ LANDSCAPE 手機橫向 ════════════ */

/* ════════════ HORIZONTAL OVERFLOW PREVENTION ════════════ */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}
img, svg, video, iframe {
  max-width: 100%;
  height: auto;
}
pre, code {
  white-space: pre-wrap;
  word-break: break-word;
}

/* 確保所有 grid 和 flex 容器不會 overflow */
.hero-wrap, .about-wrap, .research-grid, .equip-grid,
.pub-list, .tl-cards, .news-grid, .gal-grid, .contact-grid,
.sitemap-grid, .stats {
  max-width: 100%;
}


/* ═══════════════════════════════════════════════════════
   ═══════════ RESPONSIVE SYSTEM (clean rewrite) ═══════════
   3 個斷點: > 1024 (桌機) | 768-1024 (平板) | <= 768 (手機)
   小手機 480 額外微調,超小手機 360 兜底
   ═══════════════════════════════════════════════════════ */

/* 防止水平滾動 */
html, body { 
  overflow-x: hidden !important; 
  max-width: 100vw !important; 
}
img, svg, video, iframe, canvas { 
  max-width: 100% !important; 
  height: auto;
}

/* ═══ TABLET ≤ 1024px ═══ */
@media (max-width: 1024px) {
  /* 隱藏桌機 TOC */
  .toc-rail { display: none !important; }
  
  /* Section padding 縮小 */
  section { padding: 64px 32px !important; }
  .hero { padding: 88px 32px 56px !important; }
  nav { padding: 0 28px !important; }
  footer { padding-left: 28px !important; padding-right: 28px !important; }
  
  /* Nav 字體稍縮 */
  .nav-links li:not(.nav-more-wrap) a { padding: 6px 9px; font-size: 11.5px; }
  .nav-cta { padding: 7px 13px; font-size: 11px; }
  
  /* Hero 仍兩欄但 gap 縮小 */
  .hero-wrap { gap: 36px; grid-template-columns: 1fr 300px; }
  
  /* 各區塊轉成 2 欄 */
  .research-grid, .course-grid, .news-grid, .tl-cards { 
    grid-template-columns: repeat(2, 1fr) !important; 
    gap: 20px !important;
  }
  .equip-grid { 
    grid-template-columns: repeat(2, 1fr) !important; 
    gap: 16px !important;
  }
  .practice-grid { 
    grid-template-columns: repeat(2, 1fr) !important; 
  }
  
  /* About / Contact 兩區段轉單欄 */
  .about-wrap, .contact-grid { 
    grid-template-columns: 1fr !important; 
    gap: 32px !important;
  }
  
  /* Sitemap 4→2 欄 */
  .sitemap-grid { 
    grid-template-columns: repeat(2, 1fr) !important; 
  }
  
  /* Gallery 3→2 欄 */
  .gal-grid { columns: 2 !important; }
  
  /* Project panel 改單欄 */
  .proj-panel.show { grid-template-columns: 1fr !important; }
  .proj-viz { 
    border-right: none !important; 
    border-bottom: 1px solid var(--border-1); 
    min-height: 220px; 
  }
}

/* ═══ MOBILE ≤ 768px ═══ */
@media (max-width: 768px) {
  /* 顯示漢堡選單,隱藏桌機選單 */
  .nav-links { display: none !important; }
  .nav-hamburger { display: flex !important; }
  .mobile-nav-overlay { display: block; }
  
  /* Nav 簡化 */
  nav { padding: 0 18px !important; height: 60px !important; }
  .nav-cta { display: none !important; }
  .lang-pill .lang-btn { padding: 8px 12px; font-size: 10px; min-height: 40px; min-width: 40px; }
  .nav-logo-mark { width: 30px; height: 30px; font-size: 13px; }
  .nav-wordmark { font-size: 13px; }
  .nav-right { gap: 8px; }

  /* Section padding 大幅縮小 */
  section { padding: 56px 20px !important; }
  .hero { padding: 80px 20px 48px !important; min-height: auto !important; }
  .hero-proof { gap: 20px !important; margin-top: 20px !important; }
  .hero-proof-num { font-size: 28px !important; }
  footer {
    padding-left: 20px !important;
    padding-right: 20px !important;
    flex-direction: column !important;
    text-align: center !important;
    gap: 8px !important;
  }
  .f-left, .f-right { font-size: 11px !important; }
  
  /* Hero 改單欄堆疊 */
  .hero-wrap { 
    grid-template-columns: 1fr !important; 
    gap: 32px !important;
  }
  .hero-h1 { 
    font-size: clamp(36px, 9vw, 52px) !important; 
    line-height: 1.05 !important;
  }
  .hero-h1 .line1, .hero-h1 .line2 { font-size: inherit !important; }
  .hero-eyebrow { 
    font-size: 9.5px !important; 
    letter-spacing: .12em !important;
    flex-wrap: wrap; 
    margin-bottom: 16px !important;
  }
  .hero-sub { 
    font-size: 14px !important; 
    line-height: 1.65 !important;
    margin-bottom: 22px !important;
  }
  .hero-fullname, .hero-fullname-zh { font-size: 13px !important; }
  
  /* Hero CTA 改成填寬 */
  .hero-cta-row { 
    flex-direction: column !important; 
    gap: 10px !important; 
    align-items: stretch !important;
  }
  .hero-cta-row a, .hero-cta-row button {
    text-align: center !important;
    padding: 13px 20px !important;
    width: 100% !important;
  }
  
  /* Stats 改 2 欄 */
  .stats { 
    grid-template-columns: 1fr 1fr !important; 
    gap: 10px !important;
  }
  .stat-card { padding: 14px 12px !important; }
  .stat-card .stat-num { font-size: 26px !important; }
  .stat-card .stat-label { font-size: 9.5px !important; }
  
  /* 所有卡片區塊改單欄 */
  .research-grid, .course-grid, .news-grid, .tl-cards, 
  .equip-grid, .practice-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  
  /* Sitemap 改 2 欄 */
  .sitemap-grid { 
    grid-template-columns: 1fr 1fr !important; 
    gap: 16px !important;
  }
  
  /* Gallery 改單欄 */
  .gal-grid { columns: 1 !important; }

  /* 3-Domain 架構面板 — 堆疊排列 */
  .arch-body { grid-template-columns: 1fr !important; }
  .arch-nav { border-right: none !important; border-bottom: 1px solid var(--border-1); padding: 12px !important; display: flex !important; flex-direction: row !important; gap: 6px !important; overflow-x: auto; }
  .arch-btn { flex-shrink: 0; padding: 8px 12px !important; font-size: 11px !important; }
  .arch-content { padding: 20px 16px !important; }
  .a-panel-metrics { grid-template-columns: repeat(2, 1fr) !important; }

  /* XR Demo — 堆疊排列 */
  .xr-body { grid-template-columns: 1fr !important; }
  .xr-viz { border-right: none !important; border-bottom: 1px solid var(--border-1); min-height: 200px; }
  .xr-side { padding: 16px !important; }

  /* 研究卡展開內容 — 單欄 */
  .r-card .r-expand-inner { grid-template-columns: 1fr !important; }

  /* Practice 分類文字 — 允許換行 */
  .pg-cat { white-space: normal !important; }
  .pg-item { grid-template-columns: 36px 1fr !important; }
  .pg-cat { grid-column: 1 / -1; }

  /* 下拉選單 */
  .nav-more-menu { min-width: 180px !important; }
  
  /* Section heading 縮小 */
  .sec-eyebrow { font-size: 10px !important; letter-spacing: .14em !important; }
  .sec-h2, h2.sec-h2 { 
    font-size: clamp(24px, 6.5vw, 36px) !important; 
    line-height: 1.15 !important;
  }
  
  /* Cards padding */
  .card, .glass, .equip-card, .research-card, .news-card, 
  .stat-card, .tl-card { 
    padding: 18px !important; 
  }
  .equip-card { padding: 16px !important; }
  .equip-card .equip-img-wrap { aspect-ratio: 1.2 !important; }
  
  /* Profile 卡片 */
  .profile-card { padding: 20px !important; margin: 0 !important; }
  .profile-hero-wrap { margin: -20px -20px 16px !important; }
  
  /* Publications 簡化 */
  .pub-item-row { 
    grid-template-columns: 1fr !important; 
    gap: 6px !important;
  }
  .pub-meta { 
    flex-wrap: wrap !important; 
    gap: 6px !important; 
    font-size: 10px !important; 
  }
  
  /* Portfolio gallery 標籤 */
  .gal-tabs { gap: 6px !important; }
  .gal-tab { padding: 7px 13px !important; font-size: 10.5px !important; }
  
  /* Project tabs 改成換行 */
  .proj-tabs { flex-wrap: wrap !important; gap: 5px !important; }
  .proj-tab { 
    flex: 1 1 calc(50% - 5px) !important; 
    min-width: 0 !important; 
    padding: 9px 8px !important; 
    font-size: 10.5px !important; 
  }
  .proj-tab-label { font-size: 11px !important; }
  .proj-kbd-hint { display: none !important; }
  
  /* Lightbox 隱藏左右箭頭 */
  .lb-prev, .lb-next { display: none !important; }
  
  /* 動畫減弱(避免閃爍) */
  .rv { transition-duration: .4s !important; }
  
  /* Visitor counter 縮小 */
  #visitor-counter { 
    bottom: 12px !important; 
    right: 12px !important; 
    font-size: 9px !important; 
    padding: 5px 9px !important;
  }
}

/* ═══ MOBILE STANDARD ≤ 480px ═══ */
@media (max-width: 480px) {
  nav { padding: 0 14px !important; }
  
  section { padding: 48px 16px !important; }
  .hero { padding: 72px 16px 40px !important; }
  footer { padding-left: 16px !important; padding-right: 16px !important; }
  
  .hero-h1 { font-size: clamp(30px, 9.5vw, 44px) !important; }
  .hero-sub { font-size: 13.5px !important; }
  
  .stat-card .stat-num { font-size: 24px !important; }
  
  .sec-h2 { font-size: clamp(22px, 7vw, 30px) !important; }
  
  .card, .glass, .equip-card, .research-card, .news-card { 
    padding: 16px !important; 
  }
  
  .profile-card { padding: 16px !important; }
  .profile-hero-wrap { margin: -16px -16px 14px !important; }
  
  /* Sitemap 變 1 欄 */
  .sitemap-grid { grid-template-columns: 1fr !important; }
  
  /* Lang pill — 維持觸控友善 */
  .lang-pill .lang-btn { padding: 6px 10px !important; font-size: 10px !important; min-height: 44px !important; min-width: 44px !important; }

  /* Hero proof 縮放 */
  .hero-proof { gap: 16px !important; margin-top: 16px !important; }
  .hero-proof-num { font-size: 24px !important; }
  .hero-proof-label { font-size: 8.5px !important; }

  /* Practice 文字縮放 */
  .pg-title { font-size: 12px !important; }
  .pg-cat { font-size: 10px !important; }
  .pg-yr { font-size: 9.5px !important; }
}

/* ═══ MOBILE SMALL ≤ 360px ═══ */
@media (max-width: 360px) {
  nav { padding: 0 12px !important; }
  section { padding: 40px 14px !important; }
  
  .hero-h1 { font-size: 30px !important; }
  .sec-h2 { font-size: 22px !important; }

  .stats { gap: 8px !important; }
  .stat-card { padding: 12px 10px !important; }
  .stat-card .stat-num { font-size: 22px !important; }

  /* Hero proof 360px */
  .hero-proof { gap: 12px !important; }
  .hero-proof-num { font-size: 22px !important; }

  /* 語言按鈕 */
  .lang-pill .lang-btn { padding: 6px 8px !important; font-size: 9.5px !important; min-height: 44px !important; }
}

/* ═══ TOUCH 觸控裝置優化 ═══ */
@media (hover: none) and (pointer: coarse) {
  .gal-overlay { 
    opacity: 1 !important; 
    background: linear-gradient(to top, rgba(7,11,18,0.72) 0%, rgba(7,11,18,0.1) 55%, transparent 100%) !important; 
  }
  .gal-item:hover .gal-img-real { transform: none !important; }
  
  /* 點擊回饋 */
  .nav-links a:active, .btn:active, .equip-card:active, 
  .research-card:active, .news-card:active, .gal-tab:active {
    transform: scale(.98);
    transition: transform .1s;
  }
  
  /* 可點擊區域至少 48x48 (Apple HIG + WCAG 2.5.8) */
  a, button { min-height: 48px; display: inline-flex; align-items: center; }

  /* TOC 圓點擴大觸控區 */
  .toc-dot { padding: 17px; margin: -17px; }

  /* Mobile nav 連結 */
  .mobile-nav-link { min-height: 48px !important; display: flex; align-items: center; }
}

/* ═══ LANDSCAPE 手機橫向 ═══ */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) {
  .hero { 
    min-height: auto !important; 
    padding: 70px 24px 36px !important; 
  }
  .hero-h1 { font-size: 32px !important; }
  .hero-eyebrow { margin-bottom: 10px !important; }
  .hero-sub { margin-bottom: 16px !important; }
  .stats { grid-template-columns: repeat(4, 1fr) !important; }
}


/* ═══════════════════════════════════════════
   SEO H1 - 視覺隱藏但搜尋引擎與螢幕閱讀器可見
   採用 Bootstrap / Tailwind 的 visually-hidden 標準
   ═══════════════════════════════════════════ */
.seo-h1 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* === Hero portrait hover swap === */
.profile-hero-wrap {
  position: relative;
  overflow: hidden;
}
.profile-hero-img-1,
.profile-hero-img-2 {
  display: block;
  width: 100%;
  height: auto;
  transition: opacity 0.5s ease, transform 0.6s ease;
}
.profile-hero-img-2 {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  filter: brightness(0.88) contrast(1.08) saturate(1.05);
}
.profile-card:hover .profile-hero-img-1 {
  opacity: 0;
}
.profile-card:hover .profile-hero-img-2 {
  opacity: 1;
}
/* 觸控裝置:點擊切換 */
@media (hover: none) and (pointer: coarse) {
  .profile-hero-wrap.touched .profile-hero-img-1 { opacity: 0; }
  .profile-hero-wrap.touched .profile-hero-img-2 { opacity: 1; }
}

/* ══════════════════════════════════════════
   ACCESSIBILITY — Focus, Motion, Contrast
══════════════════════════════════════════ */
:focus-visible {
  outline: 2px solid var(--a1);
  outline-offset: 3px;
}
button:focus-visible, a:focus-visible, [role="button"]:focus-visible,
.glass-card:focus-visible, .research-card:focus-visible, .news-card:focus-visible {
  outline: 2px solid var(--a1);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(126,200,255,0.2);
}
.lang-btn:focus-visible { outline-offset: 1px; }
:focus:not(:focus-visible) { outline: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-behavior: auto; }
  .hero-h1, .hero-eyebrow, .hero-desc, .hero-tags, .hero-cta,
  .profile-card, .hero-fullname, .hero-fullname-zh {
    opacity: 1 !important;
    animation: none !important;
    transform: none !important;
  }
  .rv-left, .rv-right, .rv-scale { opacity: 1 !important; transform: none !important; }
  #bg-canvas, #bg-aurora { display: none !important; }
  .glass-card::after { display: none !important; }
}

/* ═══ Bento Grid System ═══ */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: minmax(180px, auto);
  gap: 16px;
  width: 100%;
}
.bento-lg { grid-column: span 2; grid-row: span 2; }
.bento-md { grid-column: span 2; }
.bento-sm { grid-column: span 1; }
@media (max-width: 768px) {
  .bento-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: minmax(140px, auto); gap: 12px; }
  .bento-lg { grid-column: span 2; grid-row: span 1; }
}
@media (max-width: 480px) {
  .bento-grid { grid-template-columns: 1fr; gap: 10px; }
  .bento-lg, .bento-md { grid-column: span 1; }
}

/* ═══ Gradient Section Divider ═══ */
.sec-divider {
  width: 100%; max-width: 1200px; margin: 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--a1), var(--a2), var(--a3), transparent);
  opacity: 0.2;
}

/* ═══ Auto-hide Nav on scroll ═══ */
nav.nav-hidden {
  transform: translateY(-100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
nav { transition: transform .35s cubic-bezier(.4,0,.2,1), border-color .4s, background .4s; }

/* ═══ Nav active underline ═══ */
.nav-links a { position: relative; }
.nav-links a::after {
  content: ''; position: absolute; bottom: 2px; left: 50%; width: 0; height: 2px;
  background: linear-gradient(90deg, var(--a1), var(--a2));
  border-radius: 1px; transform: translateX(-50%);
  transition: width .25s cubic-bezier(.34,1.56,.64,1);
}
.nav-links a.active::after, .nav-links a:hover::after { width: 60%; }

/* ═══ Social Proof Stats Row ═══ */
.hero-proof {
  display: flex; gap: 32px; flex-wrap: wrap; margin-top: 28px;
  opacity: 0; animation: fadeUp .7s .56s both;
}
.hero-proof-item {
  display: flex; flex-direction: column; align-items: flex-start;
}
.hero-proof-num {
  font-family: var(--f-display); font-size: 36px; font-weight: 900;
  background: linear-gradient(110deg, var(--a1), var(--a2));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  line-height: 1;
}
.hero-proof-label {
  font-family: var(--f-mono); font-size: 10px; color: var(--t3);
  letter-spacing: 0.1em; text-transform: uppercase; margin-top: 4px;
}

/* ═══ Scroll Progress Bar upgrade ═══ */
#scroll-progress {
  height: 3px !important;
  background: linear-gradient(90deg, var(--a1), var(--a2), var(--a3)) !important;
}

/* ══════════════════════════════════════════
   PAGE HERO — Sub-page banner (multi-page)
══════════════════════════════════════════ */
.page-hero {
  padding: 160px 0 60px;
  position: relative;
  z-index: var(--z-content);
}
.page-hero .wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
}
.page-hero-h1 {
  font-family: var(--f-heading);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  color: var(--t0);
  margin: 12px 0 8px;
  letter-spacing: -0.02em;
  line-height: 1.15;
  background: linear-gradient(110deg, var(--a1) 0%, var(--a2) 45%, var(--a3) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
html[data-mode="light"] .page-hero-h1 {
  background: linear-gradient(110deg, #1d4ed8 0%, #6d28d9 45%, #047857 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ══════════════════════════════════════════
   MULTI-PAGE NAV ACTIVE STATE
══════════════════════════════════════════ */
.nav-links a[aria-current="page"],
.nav-links a.active-page {
  color: var(--a1) !important;
  border-color: rgba(126,200,255,0.25) !important;
  background: var(--glass-2) !important;
  position: relative;
}
.nav-links a.active-page::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 20%;
  right: 20%;
  height: 2px;
  background: linear-gradient(90deg, var(--a1), var(--a2));
  border-radius: 1px;
}
html[data-mode="light"] .nav-links a.active-page {
  color: #1d4ed8 !important;
  background: rgba(29,78,216,0.06) !important;
  border-color: rgba(29,78,216,0.15) !important;
}


/* ══════════════════════════════════════════
   COMPREHENSIVE UI/UX POLISH
   — Senior designer-level refinements
══════════════════════════════════════════ */

/* ── Base Page Transitions ── */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}
body {
  animation: pageIn 0.5s ease-out;
}
@keyframes pageIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  body { animation: none; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── Nav Polish ── */
.nav-links a {
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
nav {
  transition: transform 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
nav.nav-hidden {
  transform: translateY(-100%);
}
nav.scrolled {
  box-shadow: 0 2px 24px rgba(0,0,0,0.25);
}

/* ── Cursor & Interaction ── */
.r-card, .news-card, .stat-card, .course-card, .equip-card, .tl-card,
.proj-tab, .gal-tab, .arch-nav-btn, .btn-primary, .btn-secondary,
.pf-btn, .lang-btn, .mode-toggle {
  cursor: pointer;
}

/* ── Focus Visible (a11y) ── */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid var(--a1);
  outline-offset: 3px;
  border-radius: var(--r-sm);
}

/* ── Section Divider Enhancement ── */
.sec-divider {
  opacity: 0.35;
  margin: 0 auto;
}

/* ── Card Hover Consistency ── */
.stat-card,
.r-card,
.news-card,
.course-card,
.equip-card,
.tl-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.stat-card:hover,
.r-card:hover,
.news-card:hover,
.course-card:hover,
.equip-card:hover,
.tl-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
html[data-mode="light"] .stat-card:hover,
html[data-mode="light"] .r-card:hover,
html[data-mode="light"] .news-card:hover,
html[data-mode="light"] .course-card:hover,
html[data-mode="light"] .equip-card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.08);
  border-color: rgba(29,78,216,0.18) !important;
}

/* ── Page Hero Banner (sub-pages) ── */
.page-hero {
  padding: 140px 0 56px;
  position: relative;
  z-index: var(--z-content);
  border-bottom: 1px solid var(--border-1);
}
.page-hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(60%, 500px);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--a1), var(--a2), transparent);
  opacity: 0.3;
}
.page-hero .wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
}
.page-hero .sec-label {
  margin-bottom: 8px;
}
.page-hero-h1 {
  font-family: var(--f-heading);
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 800;
  color: var(--t0);
  margin: 8px 0 12px;
  letter-spacing: -0.02em;
  line-height: 1.15;
  background: linear-gradient(110deg, var(--a1) 0%, var(--a2) 45%, var(--a3) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
html[data-mode="light"] .page-hero-h1 {
  background: linear-gradient(110deg, #1d4ed8 0%, #6d28d9 45%, #047857 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
html[data-mode="light"] .page-hero {
  border-bottom-color: rgba(0,0,0,0.06);
}
html[data-mode="light"] .page-hero::after {
  background: linear-gradient(90deg, transparent, #1d4ed8, #6d28d9, transparent);
  opacity: 0.15;
}

/* ── Section Content Spacing ── */
section .wrap {
  max-width: 1200px;
  margin: 0 auto;
}

/* ── Back-to-Top Button ── */
#backToTop {
  z-index: 480;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
#backToTop:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}

/* ── Mobile Nav Drawer ── */
.mobile-nav-drawer {
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Touch Targets (min 44px) ── */
@media (max-width: 768px) {
  .pf-btn,
  .gal-tab,
  .proj-tab {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .page-hero {
    padding: 110px 0 40px;
  }
  .page-hero-h1 {
    font-size: clamp(1.75rem, 5vw, 2.5rem);
  }
  .page-hero .sec-sub {
    font-size: 13px;
  }
}

/* ── Smooth Sub-page Sections ── */
.page-hero + section,
.page-hero + .sec-divider + section {
  animation: sectionIn 0.5s ease-out 0.15s both;
}
@keyframes sectionIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Improved Selection Color ── */
::selection {
  background: var(--a1);
  color: var(--bg-base);
}
html[data-mode="light"] ::selection {
  background: #1d4ed8;
  color: #fff;
}

/* ── Link Underline on Hover ── */
.proj-paper-item:hover .pp-text {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ── News Tag Badges ── */
.news-tag {
  transition: transform 0.2s ease;
}
.news-card:hover .news-tag {
  transform: scale(1.05);
}

/* ── CTA Buttons Polish ── */
.btn-primary {
  transition: all 0.25s ease;
}
.btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}
.btn-secondary {
  transition: all 0.25s ease;
}
.btn-secondary:hover {
  transform: translateY(-1px);
}

/* ── Practice Grid Items ── */
.pg-item {
  transition: background 0.15s ease;
}
.pg-item:hover {
  background: var(--glass-1);
  border-radius: var(--r-sm);
}

/* ── Course Card Enhancement ── */
.course-card .course-num {
  transition: color 0.2s ease;
}
.course-card:hover .course-num {
  color: var(--a1);
}

/* ══════════════════════════════════════════
   LANDING PAGE — New Section Styles
══════════════════════════════════════════ */

/* About stats grid */
.about-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}

/* Featured Work grid (3-col) */
.featured-grid {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* Awards stats grid */
.awards-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

/* Award badge cards */
.award-badges {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 24px 0;
}
.award-badge-card {
  padding: 16px 24px;
  background: var(--glass-1);
  border: 1px solid var(--border-1);
  border-radius: var(--r-lg);
  text-align: center;
  min-width: 180px;
  flex: 1;
  max-width: 280px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.award-badge-card:hover {
  border-color: var(--border-2);
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

/* CTA section */
.cta-section {
  text-align: center;
  padding: 80px 0;
}
.cta-title {
  margin-bottom: 12px;
}
.cta-sub {
  margin-bottom: 32px;
}
.cta-buttons {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Sub-page hero responsive */
.page-hero .sec-sub {
  max-width: 600px;
}


/* ══════════════════════════════════════════
   STUDENT WORKS — Cards & Grid
══════════════════════════════════════════ */
.stu-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.stu-card {
  background: var(--glass-1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--border-1);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: all 0.3s ease;
  cursor: pointer;
}
.stu-card:hover {
  border-color: var(--border-2);
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}

/* Image area */
.stu-img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--glass-2);
}
.stu-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.stu-card:hover .stu-img-wrap img {
  transform: scale(1.03);
}
.stu-img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--glass-2), var(--glass-1));
  border-bottom: 1px solid var(--border-1);
}

/* Info area */
.stu-info {
  padding: 20px;
}

/* Award badge row */
.stu-award-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.stu-badge {
  font-family: var(--f-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 3px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.stu-badge.gold {
  background: rgba(251,191,36,0.12);
  color: var(--a4);
  border: 1px solid rgba(251,191,36,0.3);
}
.stu-badge.silver {
  background: rgba(148,163,184,0.12);
  color: #94a3b8;
  border: 1px solid rgba(148,163,184,0.3);
}
.stu-badge.bronze {
  background: rgba(180,130,80,0.12);
  color: #c8956c;
  border: 1px solid rgba(180,130,80,0.3);
}
.stu-badge.winner {
  background: rgba(52,212,168,0.10);
  color: var(--a3);
  border: 1px solid rgba(52,212,168,0.3);
}
.stu-badge.best {
  background: rgba(167,139,250,0.12);
  color: var(--a2);
  border: 1px solid rgba(167,139,250,0.3);
}
.stu-badge.hm {
  background: rgba(126,200,255,0.10);
  color: var(--a1);
  border: 1px solid rgba(126,200,255,0.25);
}
.stu-badge-name {
  font-family: var(--f-mono);
  font-size: 11px;
  color: var(--t3);
  letter-spacing: 0.04em;
}

/* Title */
.stu-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--t0);
  line-height: 1.4;
  margin-bottom: 6px;
}
.stu-title small {
  display: block;
  font-size: 13px;
  font-weight: 400;
  color: var(--t2);
  margin-top: 3px;
}

/* Student info */
.stu-student {
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--a1);
  letter-spacing: 0.03em;
  margin-bottom: 10px;
}

/* Description */
.stu-desc {
  font-size: 13.5px;
  color: var(--t2);
  line-height: 1.75;
  margin-bottom: 14px;
  overflow-wrap: break-word;
}

/* Tech chips in card */
.stu-tech {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

/* Filter tabs */
.stu-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

/* Light mode overrides */
html[data-mode="light"] .stu-card {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
html[data-mode="light"] .stu-card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.08);
  border-color: rgba(29,78,216,0.15) !important;
}
html[data-mode="light"] .stu-img-placeholder {
  background: linear-gradient(135deg, #edf2f7, #f7fafc);
}
html[data-mode="light"] .stu-student {
  color: #1d4ed8;
}

/* Student card responsive */
@media (max-width: 768px) {
  .stu-grid {
    grid-template-columns: 1fr !important;
  }
  .stu-info {
    padding: 16px;
  }
  .stu-title {
    font-size: 15px;
  }
  .stu-filters {
    gap: 6px;
  }
}
@media (max-width: 480px) {
  .stu-info {
    padding: 14px;
  }
  .stu-desc {
    font-size: 13px;
  }
}


/* ══════════════════════════════════════════
   RESPONSIVE — All Breakpoints Combined
══════════════════════════════════════════ */

/* ── Tablet ≤ 1024px ── */
@media (max-width: 1024px) {
  .featured-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .about-stats,
  .awards-stats {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .award-badge-card {
    min-width: 160px;
  }
}

/* ── Mobile ≤ 768px ── */
@media (max-width: 768px) {
  /* Landing page grids */
  .featured-grid,
  .course-grid,
  .research-grid {
    grid-template-columns: 1fr !important;
  }
  .about-stats,
  .awards-stats {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  .award-badges {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  .award-badge-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  /* CTA section */
  .cta-section {
    padding: 56px 0;
  }
  .cta-buttons {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .cta-buttons a {
    text-align: center;
    width: 100%;
  }

  /* Sub-page hero */
  .page-hero {
    padding: 100px 0 36px !important;
  }
  .page-hero-h1 {
    font-size: clamp(1.6rem, 5vw, 2.2rem) !important;
  }
  .page-hero .sec-sub {
    font-size: 13px;
  }

  /* News grid on landing */
  #latest-news .news-grid {
    grid-template-columns: 1fr !important;
  }

  /* Section text align for CTA buttons */
  section [style*="text-align:center"] {
    text-align: center;
  }

  /* All inline btn-primary/secondary should stack */
  .btn-primary, .btn-secondary {
    font-size: 12px;
    padding: 12px 20px;
  }
}

/* ── Small Mobile ≤ 480px ── */
@media (max-width: 480px) {
  .featured-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .about-stats,
  .awards-stats {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
  .awards-stats .stat-card {
    padding: 14px 10px !important;
  }
  .awards-stats .stat-n {
    font-size: 28px !important;
  }

  .cta-section {
    padding: 48px 0;
  }
  .cta-sub {
    font-size: 13px;
    margin-bottom: 24px;
  }

  .page-hero {
    padding: 90px 0 30px !important;
  }

  .course-grid {
    grid-template-columns: 1fr !important;
  }
  .research-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── Very Small ≤ 360px ── */
@media (max-width: 360px) {
  .about-stats,
  .awards-stats {
    grid-template-columns: 1fr !important;
  }
  .page-hero {
    padding: 80px 0 24px !important;
  }
  .page-hero-h1 {
    font-size: 1.5rem !important;
  }
}

/* ── Scrollbar Styling (Webkit) ── */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: var(--bg-base);
}
::-webkit-scrollbar-thumb {
  background: var(--glass-3);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--glass-4);
}
html[data-mode="light"] ::-webkit-scrollbar-track {
  background: #f4f6f9;
}
html[data-mode="light"] ::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.15);
}
html[data-mode="light"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(0,0,0,0.25);
}
