@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+TC:wght@400;500;700&display=swap";:root{--accent: #0d7d7d;--accent-2: #6d5cc6;--accent-soft: #e6f2f2;--ink: #1f2933;--muted: #5b6770;--line: #dde3e6;--bg: #eef1f4;--card: #ffffff;--card-glass: rgba(255, 255, 255, .72);--card-border: rgba(255, 255, 255, .6);--shadow: 0 10px 40px rgba(20, 40, 60, .12);--shadow-soft: 0 4px 18px rgba(20, 40, 60, .08);--au1: rgba(13, 125, 125, .3);--au2: rgba(109, 92, 198, .26);--au3: rgba(56, 189, 248, .22)}html[data-theme=dark]{--accent: #2dd4bf;--accent-2: #8b7cf0;--accent-soft: rgba(45, 212, 191, .14);--ink: #e6edf3;--muted: #97a3ad;--line: #2a323b;--bg: #0b0f14;--card: #141a21;--card-glass: rgba(20, 26, 33, .62);--card-border: rgba(120, 140, 160, .18);--shadow: 0 12px 48px rgba(0, 0, 0, .5);--shadow-soft: 0 4px 20px rgba(0, 0, 0, .4);--au1: rgba(45, 212, 191, .22);--au2: rgba(139, 124, 240, .22);--au3: rgba(56, 189, 248, .16)}*{box-sizing:border-box}html,body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:Inter,Noto Sans TC,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55;transition:background-color .4s ease,color .4s ease}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.aurora{position:fixed;top:-20vmax;right:-20vmax;bottom:-20vmax;left:-20vmax;z-index:0;pointer-events:none;background:radial-gradient(38vmax 38vmax at 18% 18%,var(--au1),transparent 60%),radial-gradient(34vmax 34vmax at 82% 28%,var(--au2),transparent 60%),radial-gradient(40vmax 40vmax at 60% 88%,var(--au3),transparent 62%);filter:blur(28px) saturate(1.05);opacity:.7}html[data-mode=minimal] .aurora{opacity:.42}html[data-mode=rich] .aurora{opacity:1;filter:blur(24px) saturate(1.35)}@media (prefers-reduced-motion: no-preference){.aurora{animation:drift 26s ease-in-out infinite alternate}html[data-mode=rich] .aurora{animation-duration:16s}}@keyframes drift{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(2.5vmax,-2vmax,0) scale(1.08)}to{transform:translate3d(-2vmax,2.5vmax,0) scale(1.04)}}.resume-shell{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.toolbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:11px 20px;background:var(--card-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s ease,box-shadow .3s ease,background-color .4s ease}.toolbar.scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-soft)}.brand{display:inline-flex;border:0;background:none;padding:0;cursor:pointer}.brand-text{position:relative;display:inline-block;font-family:Noto Sans TC,Noto Sans CJK TC,sans-serif;font-weight:700;font-size:15px;letter-spacing:-.01em;line-height:1.2;white-space:nowrap}.brand-base{color:var(--ink)}.brand-fill{position:absolute;left:0;top:0;overflow:hidden;width:0;max-width:100%;white-space:nowrap;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:width .38s cubic-bezier(.4,0,.2,1)}.brand:hover .brand-fill{width:100%}@media (prefers-reduced-motion: reduce){.brand-fill{transition:none}.brand:hover .brand-fill{width:100%}}.ctrls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.seg{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card)}.seg a,.seg button{font:inherit;font-size:13px;color:var(--muted);border:0;background:transparent;cursor:pointer;padding:6px 13px;transition:color .2s,background-color .25s;white-space:nowrap}.seg a:hover,.seg button:hover{color:var(--accent);text-decoration:none}.seg.pills button.active,.seg.variant a.active{background:var(--accent);color:#fff;font-weight:600}.icon{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:15px;line-height:1;transition:transform .2s,border-color .2s,background-color .25s,color .25s}.icon .ti{width:17px;height:17px;display:block}.icon:hover{transform:translateY(-1px);border-color:var(--accent);color:var(--accent)}.dl{position:relative;overflow:hidden;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(120deg,var(--accent),var(--accent-2));border-radius:9px;padding:8px 16px;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent);transition:transform .2s,box-shadow .2s}.dl:hover{transform:translateY(-1px);text-decoration:none;box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 50%,transparent)}.dl:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-120%);background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%)}@media (prefers-reduced-motion: no-preference){.dl:hover:after{transition:transform .8s ease;transform:translate(120%)}}.resume{position:relative;z-index:1;max-width:840px;width:100%;margin:30px auto;padding:46px 54px;background:var(--card);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--shadow);transition:background-color .4s ease,box-shadow .3s ease;overflow:hidden}html[data-mode=rich] .resume{background:var(--card-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.spotlight{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 0px),color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%);transition:opacity .35s ease}html[data-mode=rich] .resume:hover .spotlight{opacity:1}.resume>*{position:relative;z-index:1}.rh h1{margin:0;font-size:31px;font-weight:800;letter-spacing:.01em;line-height:1.12}.rh h1 .en{color:var(--accent);font-weight:700}html[data-mode=rich] .rh h1{background:linear-gradient(100deg,var(--accent),var(--accent-2),var(--accent));background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-mode=rich] .rh h1 .en{-webkit-text-fill-color:transparent}@media (prefers-reduced-motion: no-preference){html[data-mode=rich] .rh h1{animation:shine 7s linear infinite}}@keyframes shine{to{background-position:220% center}}.rh .role{margin:6px 0 9px;font-size:14px;font-weight:600;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.rh .contact{margin:0;font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:2px 0}.rh .contact a{color:var(--muted)}.rh .contact a:hover{color:var(--accent)}.rh .contact .sep{margin:0 7px;opacity:.5;flex-shrink:0}.rh .contact .contact-icon{display:inline-flex;align-items:center;justify-content:center;padding:2px;transition:color .2s}.rh .contact .contact-icon svg{width:16px;height:16px;display:block}.summary{margin:16px 0 4px;padding:13px 17px;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font-size:14px;color:var(--ink);line-height:1.55}.resume-body h2{position:relative;font-size:16px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:28px 0 13px;padding-bottom:6px}.resume-body h2:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:left;transform:scaleX(1)}.job{margin:4px 0;transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease}.resume-body h3{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;font-weight:600;margin:14px 0 5px}.resume-body h3 .date{font-size:12.5px;font-weight:500;color:var(--muted);white-space:nowrap}.resume-body ul{margin:0 0 6px;padding-left:20px}.resume-body li{margin:4px 0}.resume-body li::marker{color:var(--accent)}.resume-body strong{font-weight:600}.resume-body em{color:var(--muted);font-style:normal;font-size:.92em}ul.projects .repo{font-size:12px;color:var(--muted);margin-left:6px;white-space:nowrap}ul.projects .repo:hover{color:var(--accent)}html[data-mode=rich] .job{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:12px 0}html[data-theme=dark][data-mode=rich] .job{background:#ffffff08}html[data-mode=rich] .job:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}html[data-mode=rich] .job h3{margin-top:4px}.skills-panel{margin:6px 0 18px}.skills-headline{margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--muted);font-weight:500}.skills-signature{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.sig-label{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-right:2px}.sig-chip{padding:3px 8px;border-radius:4px;font-size:12.5px;font-weight:600;line-height:1.35;background:color-mix(in srgb,var(--accent) 7%,transparent);border:1px solid var(--line);color:var(--ink);cursor:default;pointer-events:none;-webkit-user-select:none;user-select:none}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skills-panel.compact .skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.skill-card{position:relative;overflow:hidden;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}html[data-theme=dark] .skill-card{background:#ffffff08}.skill-card.hero{grid-column:1 / -1;border-left:3px solid var(--accent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--card)),var(--card))}html[data-theme=dark] .skill-card.hero{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,transparent),#ffffff08)}.skill-card:before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .28s ease}.skill-card:hover:before{transform:scaleX(1)}html[data-mode=rich] .skill-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 22%,transparent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.skills-panel .job{background:none;border:none;padding:0;margin:0}html[data-mode=rich] .skills-panel .job:hover{transform:none;box-shadow:none;border-color:transparent}.skills-panel .skill-card-head{display:flex;align-items:center;gap:7px;margin-bottom:8px}.skills-panel .skill-card-head h3{display:block;margin:0;padding:0;font-size:13.5px;font-weight:700;letter-spacing:-.01em;background:none;border:none;box-shadow:none}.skill-icon{flex-shrink:0;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--accent)}.skill-icon[data-id=ai]{color:var(--accent-2)}.skill-icon svg{width:15px;height:15px;display:block;opacity:.92}.skills-panel.compact .skill-card-head h3{font-size:12px}.skills-panel.compact .skill-card{padding:10px 11px}.skill-tags{display:flex;flex-wrap:wrap;gap:5px 6px;cursor:default;-webkit-user-select:none;user-select:none}.skill-tag{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:4px;font-size:11.5px;line-height:1.35;padding:2px 7px;border-radius:4px;background:color-mix(in srgb,var(--ink) 3%,transparent);border:1px solid color-mix(in srgb,var(--line) 85%,transparent);color:var(--muted);cursor:default;pointer-events:none}.skills-panel.compact .skill-tag{font-size:10.5px;padding:2px 6px}.skill-tag .skill-name{color:var(--ink);font-weight:500}.skill-tag.is-key .skill-name{color:var(--accent);font-weight:650}.skill-tag.is-key{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 14%,transparent)}.skill-level{font-size:10px;font-weight:700;line-height:1.2;padding:0 4px;border-radius:3px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));letter-spacing:.04em}html[data-theme=dark] .skill-level{color:#9ef0e4;background:color-mix(in srgb,var(--accent) 18%,#0f1419);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}html[data-mode=rich] .resume-body h2:first-of-type+ul{list-style:none;padding:0;margin:4px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}html[data-mode=rich] .resume-body h2:first-of-type+ul>li{margin:0;padding:11px 14px;background:var(--card);border:1px solid var(--line);border-radius:11px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}html[data-theme=dark][data-mode=rich] .resume-body h2:first-of-type+ul>li{background:#ffffff08}html[data-mode=rich] .resume-body h2:first-of-type+ul>li:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:var(--shadow-soft)}html[data-mode=rich] .resume-body h2:first-of-type+ul>li::marker{content:""}html[data-mode=rich] ul.projects{list-style:none;padding:0;margin:4px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}html[data-mode=rich] ul.projects>li{margin:0;padding:13px 15px;border-radius:12px;background:var(--card);border:1px solid var(--line);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}html[data-theme=dark][data-mode=rich] ul.projects>li{background:#ffffff08}html[data-mode=rich] ul.projects>li.live{border-left:3px solid var(--accent)}html[data-mode=rich] ul.projects>li:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}html[data-mode=rich] ul.projects>li::marker{content:""}html[data-mode=rich] .resume-body h2{background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-mode=rich] .job:hover,html[data-mode=rich] ul.projects>li:hover,html[data-mode=rich] .resume-body h2:first-of-type+ul>li:hover{transform:translateY(-5px) scale(1.015);box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 30%,transparent);border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}html[data-mode=rich] ul.projects>li,html[data-mode=rich] .resume-body h2:first-of-type+ul>li{position:relative;overflow:hidden}html[data-mode=rich] ul.projects>li:before,html[data-mode=rich] .resume-body h2:first-of-type+ul>li:before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .3s ease}html[data-mode=rich] ul.projects>li:hover:before,html[data-mode=rich] .resume-body h2:first-of-type+ul>li:hover:before{transform:scaleX(1)}html[data-mode=rich] .summary{border-left-width:4px;box-shadow:0 6px 24px color-mix(in srgb,var(--accent) 16%,transparent)}ul.projects .badge{display:none}html[data-mode=rich] ul.projects .badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.04em;vertical-align:middle;color:#fff;background:linear-gradient(120deg,var(--accent),var(--accent-2))}@media (prefers-reduced-motion: no-preference){html[data-mode=rich] .reveal{transform:translateY(22px) scale(.985)}html[data-mode=rich] .reveal.in{transform:none}}@media (prefers-reduced-motion: no-preference){.reveal{opacity:0;transform:translateY(16px)}.reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d, 0ms)}.resume-body h2:after{transform:scaleX(0);transition:transform .7s cubic-bezier(.2,.7,.2,1) .15s}.resume-body h2.reveal.in:after{transform:scaleX(1)}}.foot{margin-top:auto;text-align:center;color:var(--muted);font-size:13px;padding:14px 20px 44px}.foot a{color:var(--muted)}.foot a:hover{color:var(--accent)}.foot .sep{margin:0 8px;opacity:.5}@media (max-width: 760px){.resume{width:auto;margin:14px;padding:28px 22px;border-radius:13px}.rh h1{font-size:25px}.resume-body h3{flex-direction:column;gap:1px}.skills-grid,.skills-panel.compact .skills-grid{grid-template-columns:1fr}html[data-mode=rich] .resume-body h2:first-of-type+ul,html[data-mode=rich] ul.projects{grid-template-columns:1fr}.toolbar{padding:9px 12px;flex-wrap:wrap;gap:8px 6px}.brand-text{font-size:13px}.ctrls{gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:1}.seg a,.seg button{padding:6px 10px;font-size:12.5px}.seg.variant{order:10;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.seg.variant::-webkit-scrollbar{display:none}}
