:root{--color-bg:#fff;--color-bg-soft:#fafafa;--color-text:#111;--color-text-muted:#6b6b6b;--color-border:#e6e6e6;--color-accent:#1a1a1a;--color-accent-soft:#f2f2f2;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace;--max-width:880px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6rem;--radius:6px;--transition:.2s ease}@media (prefers-color-scheme:dark){:root{--color-bg:#0e0e0e;--color-bg-soft:#161616;--color-text:#f2f2f2;--color-text-muted:#a3a3a3;--color-border:#2a2a2a;--color-accent:#f2f2f2;--color-accent-soft:#1c1c1c}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.25}p{margin:0}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}button{font-family:inherit}::selection{background:var(--color-accent);color:var(--color-bg)}.container{max-width:var(--max-width);padding:0 var(--space-3);margin:0 auto}.section{padding:var(--space-6) 0;border-bottom:1px solid var(--color-border)}.section:last-of-type{border-bottom:none}.section-label{font-family:var(--font-mono);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);font-size:.8rem;display:block}.section-title{margin-bottom:var(--space-4);font-size:clamp(1.5rem,3vw,2rem)}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}.nav{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color var(--transition), background var(--transition);background:#fffc;border-bottom:1px solid #0000;position:sticky;top:0}@media (prefers-color-scheme:dark){.nav{background:#0e0e0ecc}}.nav--scrolled{border-bottom-color:var(--color-border)}.nav__inner{justify-content:space-between;align-items:center;height:64px;display:flex}.nav__brand{letter-spacing:-.01em;font-weight:700}.nav__links{gap:var(--space-3);color:var(--color-text-muted);font-size:.9rem;display:flex}.nav__links a:hover{color:var(--color-text)}.nav__links--desktop{display:none}.nav__links--mobile{padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);gap:var(--space-2);flex-direction:column}.nav__toggle{cursor:pointer;padding:var(--space-1);background:0 0;border:none;flex-direction:column;gap:5px;display:flex}.nav__toggle span{background:var(--color-text);width:20px;height:2px;display:block}@media (width>=720px){.nav__links--desktop{display:flex}.nav__toggle{display:none}}.hero{padding:var(--space-6) 0 var(--space-5)}.hero__inner{gap:var(--space-3);flex-direction:column;display:flex}.hero__title{font-size:clamp(2rem,6vw,3.5rem)}.hero__title-muted{color:var(--color-text-muted);font-weight:500}.hero__tagline{max-width:42ch;color:var(--color-text-muted);font-size:1.1rem}.hero__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.hero__meta{align-items:center;gap:var(--space-2);margin-top:var(--space-4);font-family:var(--font-mono);color:var(--color-text-muted);flex-wrap:wrap;font-size:.85rem;display:flex}.hero__meta a:hover{color:var(--color-text)}.dot{background:var(--color-text-muted);border-radius:50%;width:4px;height:4px}.btn{border-radius:var(--radius);border:1px solid var(--color-accent);transition:transform var(--transition), opacity var(--transition);align-items:center;gap:6px;padding:.7em 1.3em;font-size:.9rem;font-weight:600;display:inline-flex}.btn:hover{opacity:.85;transform:translateY(-1px)}.btn--primary{background:var(--color-accent);color:var(--color-bg)}.btn--ghost{color:var(--color-text);background:0 0}.tag{font-size:.78rem;font-family:var(--font-mono);background:var(--color-accent-soft);color:var(--color-text);border-radius:999px;padding:.3em .8em;display:inline-block}.tag--outline{border:1px solid var(--color-border);background:0 0}.about__grid{gap:var(--space-4);display:grid}.about__text{gap:var(--space-2);color:var(--color-text-muted);flex-direction:column;display:flex}.about__highlights{gap:var(--space-4);display:flex}.stat{flex-direction:column;gap:4px;display:flex}.stat__value{font-size:1.6rem;font-weight:700}.stat__label{color:var(--color-text-muted);font-size:.85rem}@media (width>=720px){.about__grid{grid-template-columns:2fr 1fr}.about__highlights{flex-direction:column}}.skills__grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.skills__group{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius)}.skills__group-title{margin-bottom:var(--space-2);font-size:.95rem}.skills__tags{flex-wrap:wrap;gap:8px;display:flex}@media (width>=640px){.skills__grid{grid-template-columns:repeat(2,1fr)}}.projects__grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.project-card{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);gap:var(--space-2);transition:border-color var(--transition);flex-direction:column;display:flex}.project-card:hover{border-color:var(--color-text-muted)}.project-card__title{font-size:1.1rem}.project-card__desc{color:var(--color-text-muted);font-size:.95rem}.project-card__tags{flex-wrap:wrap;gap:6px;display:flex}.project-card__links{gap:var(--space-2);font-size:.85rem;font-weight:600;display:flex}.project-card__links a:hover{text-decoration:underline}@media (width>=640px){.projects__grid{grid-template-columns:repeat(2,1fr)}}.timeline{gap:var(--space-4);flex-direction:column;display:flex}.timeline__item{gap:var(--space-1);display:grid}.timeline__period{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.8rem}.timeline__title{font-size:1.05rem}.timeline__desc{color:var(--color-text-muted);margin-top:4px;font-size:.95rem}@media (width>=640px){.timeline__item{gap:var(--space-3);grid-template-columns:140px 1fr}}.section--contact{background:var(--color-bg-soft);border-bottom:none}.contact__text{color:var(--color-text-muted);max-width:50ch;margin:var(--space-1) 0 var(--space-3)}.contact__cta{margin-bottom:var(--space-3)}.contact__socials{gap:var(--space-3);color:var(--color-text-muted);font-size:.9rem;display:flex}.contact__socials a:hover{color:var(--color-text)}.footer{padding:var(--space-3) 0}.footer__inner{color:var(--color-text-muted);justify-content:space-between;font-size:.85rem;display:flex}
