@keyframes spinText{0%,to{content:"Hi~"}50%{content:"你好~"}}.greeting-animated:after{content:"Hi~";position:relative;display:inline-block;animation:spinText 12s ease-in-out infinite;background-image:linear-gradient(135deg,#f5a07a,#ee7055);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.05em}[data-theme=light] .greeting-animated:after{background-image:linear-gradient(135deg,#d43a1c,#c02e12)}.text-gradient{-webkit-text-fill-color:transparent;background-image:linear-gradient(160deg,#fed7aa,#fda4af);-webkit-background-clip:text;background-clip:text;font-weight:300}[data-theme=light] .text-gradient{-webkit-text-fill-color:inherit;background-image:none;color:#1a1a1a}.hero-gradient{-webkit-text-fill-color:transparent;background-image:linear-gradient(135deg,#f5a07a,#ee7055);-webkit-background-clip:text;background-clip:text}[data-theme=light] .hero-gradient{background-image:linear-gradient(135deg,#d43a1c,#c02e12)}@keyframes heroCopyIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.hero-copy-enter{opacity:0;animation:heroCopyIn .86s cubic-bezier(.22,1,.36,1) .22s forwards}@media (prefers-reduced-motion:reduce){.hero-copy-enter{opacity:1;animation:none}}.card-overlay{opacity:0;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);background-color:#0000008f;border-radius:8px;flex-flow:column;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0;transition:opacity .35s ease;pointer-events:none}.card-wrapper:hover .card-overlay{opacity:1}.btn-about{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#ffffffcc;background-color:#2b2832;border:1px solid #ffffff05;border-radius:40px;justify-content:center;align-items:center;width:10.8rem;height:4rem;font-family:var(--font-google-sans-flex),sans-serif;font-size:1.4rem;font-weight:300;display:inline-flex;transition:background-color .3s ease,color .3s ease;text-decoration:none}.btn-about:hover{background-color:#fff;color:#000000cc}[data-theme=light] .btn-about{background-color:#f0f0f0;color:#1a1a1a;border-color:rgba(0,0,0,.06)}[data-theme=light] .btn-about:hover{background-color:#1a1a1a;color:#fafafa}.card-bg{background-color:#1c1c1e}[data-theme=light] .card-bg{background-color:#edeae4}.card-loading-shell{display:flex;align-items:center;justify-content:center;overflow:hidden;background:rgba(255,255,255,.006)}.card-loading-icon{width:min(16%,3.25rem);height:auto;display:block;opacity:.16;animation:homepageCardSpin 1.45s linear infinite;transform-origin:center;will-change:transform}[data-theme=light] .card-loading-shell{background:rgba(0,0,0,.018)}[data-theme=light] .card-loading-icon{opacity:.14}@keyframes homepageCardSpin{to{transform:rotate(1turn)}}.project-card-mobile-shell{background-color:#1c1c1e;border-radius:.375rem;overflow:hidden}.card-mobile-bar-top{border-bottom:1px solid rgba(255,255,255,.04)}.card-mobile-bar-bottom{border-top:1px solid rgba(255,255,255,.025)}.card-mobile-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}[data-theme=light] .project-card-mobile-shell{background-color:#edeae4}[data-theme=light] .card-mobile-bar-top{border-bottom-color:rgba(0,0,0,.06)}[data-theme=light] .card-mobile-bar-bottom{border-top-color:rgba(0,0,0,.04)}.card-hover-bg,[data-theme=light] .card-hover-bg{background-color:color-mix(in srgb,var(--color-bg-primary) 85%,transparent)}.card-label-muted{color:rgba(255,255,255,.25)}[data-theme=light] .card-label-muted{color:rgba(0,0,0,.25)}.project-card img{transition:opacity .3s ease}.project-card:hover img{opacity:.85}.project-card .card-tags{opacity:0;transition:opacity .3s ease}.project-card:hover .card-tags{opacity:1}.project-grid>*{transition:filter .3s ease}.project-grid:hover>*{filter:brightness(.92)}.project-grid>:hover{filter:brightness(1)}.project-grid .small-group,.project-grid .stacked-group{filter:none}.project-grid .small-group>*,.project-grid .stacked-group>*{transition:filter .3s ease}.project-grid:hover .small-group>*,.project-grid:hover .stacked-group>*{filter:brightness(.92)}.project-grid .small-group>:hover,.project-grid .stacked-group>:hover{filter:brightness(1)}@media (max-width:768px){.project-card-mobile-shell{background-color:#1c1c1e;border-radius:.375rem;overflow:hidden}[data-theme=light] .project-card-mobile-shell{background-color:#edeae4}.acupoint-label{transform:translateX(4%)!important}.meridian-label-cn,.meridian-label-en{transform:translate(-8%,30%)}}@media (min-width:768px){.project-card-mobile-shell{background-color:transparent;border-radius:0;overflow:visible}}