:root{--bg: #09090b;--bg-accent: #18181b;--card: rgba(24, 24, 27, .4);--card-hover: rgba(39, 39, 42, .6);--card-border: rgba(255, 255, 255, .1);--text: #f8fafc;--muted: #94a3b8;--accent: #8b5cf6;--accent-dark: #c4b5fd;--accent-soft: rgba(139, 92, 246, .2);--highlight: #2dd4bf;--shadow: 0 8px 32px 0 rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(139, 92, 246, .3);--radius-lg: 24px;--radius-md: 16px}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans TC,Noto Sans,Poppins,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}a{color:inherit;text-decoration:none}.gradient-text{background:linear-gradient(135deg,#a78bfa,#2dd4bf);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#three-root{position:fixed;inset:0;pointer-events:none;z-index:0}#three-root canvas{width:100%;height:100%;display:block}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out,box-shadow .3s ease,border-color .3s ease}.reveal.active{opacity:1;transform:translateY(0)}.page{position:relative;z-index:1;max-width:800px;margin:0 auto;padding:32px 24px 80px;display:flex;flex-direction:column;gap:32px}.top-nav{display:flex;align-items:center;flex-direction:column;gap:16px;padding:20px 32px;background:var(--card);backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);text-align:center}.nav-top-row{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;flex-wrap:wrap}.logo{font-family:Poppins,sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.lang-switch{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border:1px solid rgba(139,92,246,.3);color:var(--accent-dark);padding:5px 14px;border-radius:999px;font-size:.82rem;font-weight:600;transition:all .3s ease;cursor:pointer}.lang-switch:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.05);box-shadow:var(--shadow-glow)}.lang-switch svg{width:14px;height:14px;fill:currentColor}.nav-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;font-size:.95rem;color:var(--text)}.nav-links a{padding:6px 16px;border-radius:999px;transition:all .3s ease}.nav-links a:hover{background:var(--accent-soft);color:var(--accent-dark);box-shadow:var(--shadow-glow)}.hero{display:flex;flex-direction:column;gap:24px}.card-base{background:var(--card);border-radius:var(--radius-lg);padding:40px 32px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;border:1px solid var(--card-border);backdrop-filter:blur(20px);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.card-base:hover{transform:translateY(-5px);box-shadow:var(--shadow-glow);border-color:#8b5cf666}.hero-card h1{font-size:clamp(2rem,3vw,3rem);margin:0;font-family:Poppins,sans-serif}.hero-card p{margin:0;color:var(--muted);max-width:600px}.hero-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.pill{background:var(--accent-soft);color:var(--accent-dark);padding:6px 14px;border-radius:999px;font-size:.85rem;font-weight:600;border:1px solid rgba(139,92,246,.3)}@keyframes pulse-glow{0%{box-shadow:0 0 15px #8b5cf666}50%{box-shadow:0 0 35px #8b5cf6cc}to{box-shadow:0 0 15px #8b5cf666}}.avatar{width:140px;height:140px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,#2dd4bf 100%);animation:pulse-glow 4s infinite;border:4px solid rgba(255,255,255,.1);margin-bottom:8px;overflow:hidden;display:grid;place-items:center}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.section h2{margin:0 0 8px;font-family:Poppins,sans-serif;font-size:1.8rem}.section p{margin:0;color:var(--muted);max-width:600px;line-height:1.8}.experience-list{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;width:100%}.experience-item{padding:20px;border-radius:var(--radius-md);background:#18181b80;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;border:1px solid var(--card-border);transition:transform .2s ease,box-shadow .2s ease}.experience-item:hover{transform:translateY(-3px);background:var(--card-hover);box-shadow:0 8px 20px #8b5cf633;border-color:#8b5cf64d}.experience-item span{font-weight:600;color:var(--accent-dark);font-size:1.1rem}.skills-grid{display:flex;flex-direction:column;gap:16px;width:100%}.skill-card{background:#18181b80;border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;border:1px solid var(--card-border);transition:transform .3s ease,box-shadow .3s ease}.skill-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-glow);background:var(--card-hover)}.skill-card h3{margin:0;font-size:1.2rem;color:var(--accent-dark)}.skill-list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.chip{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text);padding:8px 16px;border-radius:999px;font-size:.9rem;font-weight:500;transition:all .3s ease}.chip:hover{background:var(--accent-soft);border-color:var(--accent);color:#fff;transform:scale(1.05)}.club-grid{display:flex;flex-direction:column;gap:16px;width:100%}.club-card{background:#18181b80;border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;border:1px solid var(--card-border);transition:transform .3s ease,box-shadow .3s ease}.club-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-glow);background:var(--card-hover)}.club-card h3{margin:0;font-size:1.2rem;color:var(--accent-dark)}.club-card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;color:var(--muted)}.footer{text-align:center;color:var(--muted);font-size:.9rem;padding-top:20px}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:16px}.contact-btn{display:flex;align-items:center;gap:8px;background:#ffffff0d;border:1px solid var(--card-border);color:var(--text);padding:10px 20px;border-radius:12px;font-size:.95rem;font-weight:500;transition:all .3s ease}.contact-btn:hover{background:var(--card-hover);border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-glow);color:var(--accent-dark)}.contact-btn svg{width:20px;height:20px;fill:currentColor}.typewriter-cursor:after{content:"|";animation:blink 1s step-end infinite;color:var(--highlight);font-weight:700}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media(max-width:720px){.card-base{padding:32px 20px}.avatar{width:110px;height:110px;font-size:2.2rem}}
