:root{--bg: #ffffff;--bg-soft: #f7f8f7;--surface: #ffffff;--text: #1b211e;--text-secondary: #66736d;--primary: #ff5d8f;--primary-dark: #d63a6e;--primary-soft: #ffe4ee;--accent: #ff8a5c;--border: #eceeed;--radius: 18px;--shadow: 0 18px 45px rgba(214, 58, 110, .12);--max-width: 1080px;--pink: #ff5d8f;--pink-ink: #d63a6e;--pink-soft: #ffe4ee;--violet: #7c6cf6;--violet-ink: #5b4bd6;--violet-soft: #ece9ff;--blue: #3d9bff;--blue-ink: #2372c9;--blue-soft: #e3f1ff;--yellow: #ffc83d;--yellow-ink: #9a6b00;--yellow-soft: #fff4d6;--orange: #ff8a5c;--orange-ink: #c85a2e;--orange-soft: #ffe8dd;--mint: #2ec4b6;--mint-ink: #12857b;--mint-soft: #dff8f5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(900px 500px at 88% -10%,rgba(255,93,143,.1),transparent 62%),radial-gradient(700px 420px at -8% 0%,rgba(255,200,61,.13),transparent 58%),radial-gradient(820px 480px at 50% 108%,rgba(61,155,255,.08),transparent 62%),var(--bg);background-attachment:fixed;color:var(--text);font-family:Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{max-width:100%}button{font-family:inherit}::selection{background:#ffc83d8c}:where(a,button):focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:8px}.app-shell{display:flex;min-height:100vh;flex-direction:column}.page{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:48px 24px 96px}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:#ffffffd1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:var(--max-width);margin:0 auto;padding:14px 24px}.brand{display:flex;align-items:center;gap:12px}.brand-gao{display:inline-flex;font-family:Comic Sans MS,Chalkboard SE,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:.02em;line-height:1}.brand-gao span{display:inline-block;opacity:0;animation:letterGlow .7s cubic-bezier(.2,.7,.2,1) forwards;transition:transform .25s ease}.brand-gao span:nth-child(1){color:var(--pink);animation-delay:.05s}.brand-gao span:nth-child(2){color:var(--orange);animation-delay:.12s}.brand-gao span:nth-child(3){color:var(--yellow);animation-delay:.19s}.brand-gao span:nth-child(4){color:var(--mint);animation-delay:.26s}.brand-gao span:nth-child(5){color:var(--blue);animation-delay:.33s}.brand-gao span:nth-child(6){color:var(--violet);animation-delay:.4s}.brand:hover .brand-gao span:nth-child(odd){transform:translateY(-2.5px)}.brand:hover .brand-gao span:nth-child(2n){transform:translateY(2.5px)}@media(prefers-reduced-motion:reduce){.brand-gao span{animation:none;opacity:1;transform:none}}.brand__text{display:flex;flex-direction:column;font-size:1rem;font-weight:600;line-height:1.3}.brand__text small{padding:5px 0;color:var(--text-secondary);font-size:.72rem;font-weight:400;letter-spacing:.04em}.nav{display:flex;gap:6px}.nav__link{padding:8px 15px;border-radius:999px;color:var(--text-secondary);font-size:.92rem;transition:color .2s ease,background-color .2s ease}.nav__link:hover{color:var(--primary-dark);background:var(--primary-soft)}.nav__link.is-active{color:var(--primary-dark);background:var(--primary-soft);font-weight:600}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding:40px 0 64px}.eyebrow{margin:0;color:var(--primary-dark);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.74rem;font-weight:600;letter-spacing:.18em}.hero h1{margin:14px 0 18px;font-size:clamp(2.2rem,4.2vw,3.2rem);line-height:1.18;letter-spacing:-.02em}.hero__mark{color:var(--primary)}.hero__lead{max-width:34em;margin:0 0 28px;color:var(--text-secondary);font-size:1.05rem}.hero__actions{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border:1px solid transparent;border-radius:999px;font-size:.95rem;font-weight:600;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease}.btn--primary{background:var(--primary);box-shadow:0 12px 26px #2f9e8a3d;color:#fff}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px #2f9e8a52}.btn--ghost{border-color:var(--border);background:var(--surface);color:var(--text)}.btn--ghost:hover{border-color:var(--primary);color:var(--primary-dark)}.hero__stats{display:flex;gap:40px;margin-top:40px;padding-top:28px;border-top:1px dashed var(--border)}.hero__stats strong{display:block;color:#000;font-size:1.32rem;line-height:1.3}.hero__stats span{color:#000;font-size:.8rem}.hero__cursor{display:inline-block;width:4px;height:.85em;margin-left:10px;background:var(--primary);vertical-align:-.05em;animation:cursorBlink 1.05s steps(2,start) infinite}.hero__visual{position:relative;display:grid;min-height:340px;place-items:center}.blob{position:absolute;border-radius:50%;filter:blur(46px);opacity:.55}.blob--one{top:-28px;left:4%;width:190px;height:190px;background:var(--pink-soft);animation:blobFloat 9s ease-in-out infinite}.blob--two{right:0;bottom:-34px;width:230px;height:230px;background:var(--mint-soft);animation:blobFloat 11s ease-in-out infinite reverse}@keyframes blobFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-14px) scale(1.05)}}.avatar-card{position:relative;z-index:1;display:flex;width:500px;max-width:100%;height:340px;padding:24px 26px;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:radial-gradient(150px 130px at 100% 0%,rgba(255,93,143,.1),transparent 72%),radial-gradient(170px 150px at 0% 100%,rgba(46,196,182,.12),transparent 72%),#fff;box-shadow:0 26px 55px #1f29242e,0 6px 16px #1f292414;transform:perspective(900px);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}.avatar-card:before{content:"";position:absolute;top:0;right:0;left:0;height:6px;background:linear-gradient(90deg,var(--pink),var(--orange),var(--yellow),var(--mint),var(--blue),var(--violet))}.avatar-card:hover{transform:perspective(900px) rotateX(5deg) rotateY(-7deg) translateY(-6px);box-shadow:0 38px 72px #1f292438,0 10px 22px #1f29241a}.avatar-card__sheen{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.55) 50%,transparent 58%);transform:translate(-70%);pointer-events:none}.avatar-card:hover .avatar-card__sheen{transform:translate(70%);transition:transform .8s ease}.avatar-card__main{display:grid;flex:1;min-width:0}.avatar-card__head{display:flex;align-items:center;gap:16px}.avatar-card__brand{margin:0;color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.62rem;font-weight:600;letter-spacing:.22em}.avatar-card__name{margin:4px 0 2px;font-size:1.5rem;font-weight:800;letter-spacing:.02em}.avatar-card__role{margin:0;color:var(--text-secondary);font-size:.82rem}.avatar-card__line{height:1px;margin:16px 0 12px;background:linear-gradient(90deg,var(--pink),var(--yellow) 35%,var(--mint) 70%,transparent);opacity:.5}.avatar-card__contact{display:grid;flex-wrap:wrap;align-items:center;align-content:flex-end;gap:8px;margin-top:auto;font-size:.78rem}.avatar-card__contact a,.avatar-card__pill{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-weight:600;text-decoration:none}.avatar-card__contact a{transition:color .2s ease,border-color .2s ease,transform .2s ease}.avatar-card__contact a:hover{border-color:var(--pink);color:var(--pink-ink);transform:translateY(-1px)}.avatar-card__pill{color:var(--text-secondary)}.avatar-card__photo{flex-shrink:0;width:120px;height:150px;border-radius:12px;object-fit:cover;box-shadow:0 10px 22px #d63a6e2e}@media(prefers-reduced-motion:reduce){.blob{animation:none}.avatar-card,.avatar-card:hover{transform:none}}.terminal{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 24px 50px #1e3c321f,inset 0 1px #fff9;transform:rotate(-1deg);transition:transform .3s ease}.terminal:hover{transform:rotate(0) translateY(-3px)}.terminal__bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-soft)}.terminal__dot{width:10px;height:10px;border-radius:50%}.terminal__dot--red{background:#ff5f57}.terminal__dot--yellow{background:#febc2e}.terminal__dot--green{background:#28c840}.terminal__title{margin-left:8px;color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem}.terminal__body{padding:22px 24px 26px;color:#3a443f;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:2}.terminal__body p{margin:0;white-space:pre-wrap}.terminal__prompt{margin-right:8px;color:var(--primary)}.terminal__out{padding-left:18px;color:var(--text-secondary)}.terminal__tags{color:var(--primary-dark)}.terminal__cursor{display:inline-block;width:8px;height:1em;background:var(--primary);vertical-align:-.15em;animation:cursorBlink 1.05s steps(2,start) infinite}.section{margin-top:56px}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}.section__head h2{margin:0;font-size:1.5rem;letter-spacing:-.01em}.section__head h2:before{color:var(--primary);content:"> ";font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-weight:600}.section__link{color:var(--primary-dark);font-size:.88rem;font-weight:600;white-space:nowrap}.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}.post-card{display:flex;flex-direction:column;padding:26px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 4px 14px #1e3c320d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.post-card:hover{transform:translateY(-4px);border-color:#cfe6df;box-shadow:var(--shadow)}.post-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:var(--text-secondary);font-size:.77rem}.dot{width:4px;height:4px;border-radius:50%;background:#c9d4cf}.post-card__title{margin:12px 0 10px;font-size:1.15rem;line-height:1.45}.post-card__title a{transition:color .2s ease}.post-card__title a:hover{color:var(--primary-dark)}.post-card__desc{flex:1;margin:0 0 20px;color:var(--text-secondary);font-size:.9rem}.post-card__footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:.73rem;transition:background-color .2s ease,color .2s ease}a.tag:hover{background:var(--primary);color:#fff}.read-more{color:var(--primary-dark);font-size:.84rem;font-weight:600;white-space:nowrap}.topic-list{display:flex;flex-wrap:wrap;gap:10px}.topic{padding:9px 18px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);font-size:.9rem;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.topic:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.page-head{max-width:640px;margin-bottom:32px}.page-head h1{margin:10px 0;font-size:clamp(1.9rem,4vw,2.6rem);letter-spacing:-.02em}.page-head p:last-child{margin:0;color:var(--text-secondary)}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.filter{padding:7px 16px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);font-size:.86rem;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.filter:hover{border-color:var(--primary);color:var(--primary-dark)}.filter.is-active{border-color:var(--primary);background:var(--primary);color:#fff}.empty-state{padding:48px 0;color:var(--text-secondary);text-align:center}.post{max-width:760px;margin:0 auto}.back-link{color:var(--text-secondary);font-size:.87rem;transition:color .2s ease}.back-link:hover{color:var(--primary-dark)}.post__header{margin-bottom:32px;padding:22px 0 32px;border-bottom:1px solid var(--border)}.post__header h1{margin:14px 0 12px;font-size:clamp(1.9rem,4.2vw,2.7rem);line-height:1.25;letter-spacing:-.02em}.post__desc{margin:0 0 18px;color:var(--text-secondary);font-size:1.02rem}.prose{color:#3a443f;font-size:1.02rem;line-height:1.9}.prose h2{margin:2.1em 0 .6em;color:var(--text);font-size:1.4rem;letter-spacing:-.01em}.prose h3{margin:1.8em 0 .5em;color:var(--text);font-size:1.15rem}.prose p{margin:0 0 1.2em}.prose a{color:var(--primary-dark);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#2f9e8a66}.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.35em}.prose li{margin:.35em 0}.prose li::marker{color:var(--primary)}.prose blockquote{margin:1.6em 0;padding:16px 22px;border-left:3px solid var(--primary);border-radius:0 12px 12px 0;background:var(--primary-soft);color:#4a5a54}.prose blockquote p:last-child{margin-bottom:0}.prose code{padding:2px 6px;border-radius:6px;background:#eef3f0;color:#2f5a50;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88em}.prose pre{margin:1.5em 0;padding:20px 22px;border:1px solid #1c2420;border-radius:14px;background:#232c28;color:#e6f2ee;overflow-x:auto;line-height:1.65}.prose pre code{padding:0;background:none;color:inherit;font-size:.86rem}.prose table{display:block;width:100%;margin:1.5em 0;border-collapse:collapse;font-size:.92rem;overflow-x:auto}.prose th,.prose td{padding:10px 14px;border:1px solid var(--border);text-align:left}.prose th{background:var(--bg-soft);font-weight:600}.prose hr{margin:2.4em 0;border:none;border-top:1px dashed var(--border)}.prose img{margin:1.5em 0;border-radius:14px}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:56px;padding-top:28px;border-top:1px solid var(--border)}.post-nav__item{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border:1px solid var(--border);border-radius:14px;background:var(--surface);transition:border-color .2s ease,transform .2s ease}.post-nav__item:hover{transform:translateY(-2px);border-color:var(--primary)}.post-nav__item span{color:var(--text-secondary);font-size:.74rem}.post-nav__item strong{font-size:.94rem;line-height:1.5}.post-nav__item--next{grid-column:2;text-align:right}.about{max-width:820px;margin:0 auto}.about__card{display:flex;align-items:center;gap:28px;padding:32px;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow)}.brand-gao--avatar{font-size:2rem}.about__timeline{display:grid;gap:14px;margin-top:6px}.about__job{padding:18px 20px;border:1px solid var(--border);border-left:4px solid var(--pink);border-radius:16px;background:var(--surface)}.about__job:nth-child(2){border-left-color:var(--blue)}.about__job-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.about__job-head h3{margin:0;font-size:.98rem}.about__job-date{padding:3px 10px;border-radius:999px;background:var(--pink-soft);color:var(--pink-ink);font-size:.72rem;font-weight:700;white-space:nowrap}.about__job:nth-child(2) .about__job-date{background:var(--blue-soft);color:var(--blue-ink)}.about__job p{margin:10px 0 0;color:var(--text-secondary);font-size:.9rem;line-height:1.75}.about__extra{margin:14px 0 0;color:var(--text-secondary);font-size:.85rem}.about__card h1{margin:6px 0 4px;font-size:1.7rem}.about__role{margin:0;color:var(--text-secondary);font-size:.9rem}.about__body{display:grid;gap:34px;margin-top:36px}.about__section h2{margin:0 0 12px;font-size:1.2rem}.about__section p{margin:0 0 12px;color:var(--text-secondary)}.about__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.tag--static{padding:6px 14px;font-size:.8rem}.about__project{display:block;margin-top:6px;padding:22px 24px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(135deg,var(--pink-soft) 0%,var(--yellow-soft) 55%,var(--mint-soft) 100%);box-shadow:var(--shadow);color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.about__project:hover{transform:translateY(-3px);box-shadow:0 24px 55px #d63a6e2e}.about__project-more{margin-left:auto;color:var(--pink-ink);font-size:.8rem;font-weight:700;transition:transform .2s ease}.about__project:hover .about__project-more{transform:translate(4px)}.about__project-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px}.about__project-head h3{margin:0;font-size:1.05rem}.about__project-badge{padding:4px 12px;border-radius:999px;background:#fff;color:var(--pink-ink);font-size:.72rem;font-weight:700;box-shadow:0 4px 12px #d63a6e24}.about__project p{margin:0 0 14px;color:var(--text-secondary)}.about__project-tags{display:flex;flex-wrap:wrap;gap:8px}.about__project-tags .tag--static{padding:4px 12px;font-size:.73rem;background:#fff}.about__project-tags .tag:nth-child(7n+1){color:var(--pink-ink)}.about__project-tags .tag:nth-child(7n+2){color:var(--orange-ink)}.about__project-tags .tag:nth-child(7n+3){color:var(--yellow-ink)}.about__project-tags .tag:nth-child(7n+4){color:var(--mint-ink)}.about__project-tags .tag:nth-child(7n+5){color:var(--blue-ink)}.about__project-tags .tag:nth-child(7n+6){color:var(--violet-ink)}.about__project-tags .tag:nth-child(7n+7){color:var(--pink-ink)}.project{max-width:860px;margin:0 auto}.project__hero{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center;padding:32px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(135deg,var(--pink-soft) 0%,var(--yellow-soft) 55%,var(--mint-soft) 100%);box-shadow:var(--shadow)}.project__hero h1{margin:8px 0 12px;font-size:2.1rem;letter-spacing:-.02em}.project__lead{margin:0 0 18px;color:var(--text-secondary);line-height:1.7}.project__hero-img{width:100%;border-radius:18px;border:1px solid var(--border);box-shadow:0 14px 34px #d63a6e29}.project__meta-tags{display:flex;flex-wrap:wrap;gap:8px}.project__meta-tag{padding:4px 12px;border-radius:999px;background:#fff;font-size:.73rem;font-weight:600;box-shadow:0 4px 12px #d63a6e1a}.project__meta-tag:nth-child(7n+1){color:var(--pink-ink)}.project__meta-tag:nth-child(7n+2){color:var(--orange-ink)}.project__meta-tag:nth-child(7n+3){color:var(--yellow-ink)}.project__meta-tag:nth-child(7n+4){color:var(--mint-ink)}.project__meta-tag:nth-child(7n+5){color:var(--blue-ink)}.project__meta-tag:nth-child(7n+6){color:var(--violet-ink)}.project__meta-tag:nth-child(7n+7){color:var(--pink-ink)}.project__section{margin-top:44px}.project__section h2{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:1.3rem}.project__section h2:before{content:"";width:22px;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--pink),var(--orange),var(--mint))}.project__section>p{margin:0;color:var(--text-secondary);line-height:1.8}.project__features{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.project__feature{padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:var(--surface);border-left-width:4px}.project__feature h3{margin:0 0 6px;font-size:.98rem}.project__feature p{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.7}.project__feature--pink{border-left-color:var(--pink)}.project__feature--orange{border-left-color:var(--orange)}.project__feature--yellow{border-left-color:var(--yellow)}.project__feature--mint{border-left-color:var(--mint)}.project__feature--blue{border-left-color:var(--blue)}.project__feature--violet{border-left-color:var(--violet)}.project__figure{margin:18px 0 0}.project__figure img{width:100%;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}.project__figure figcaption{margin-top:10px;color:var(--text-secondary);font-size:.82rem;text-align:center}.project__tech{display:grid;gap:14px}.project__tech-item{padding:20px 24px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.project__tech-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}.project__tech-head h3{margin:0;font-size:1.02rem}.project__tech-tag{padding:3px 10px;border-radius:999px;background:var(--pink-soft);color:var(--pink-ink);font-size:.72rem;font-weight:700}.project__tech-item:nth-child(2) .project__tech-tag{background:var(--mint-soft);color:var(--mint-ink)}.project__tech-item:nth-child(3) .project__tech-tag{background:var(--blue-soft);color:var(--blue-ink)}.project__tech-item ul{margin:0;padding:0;list-style:none}.project__tech-item li{position:relative;padding-left:18px;margin-bottom:10px;color:var(--text-secondary);font-size:.9rem;line-height:1.7}.project__tech-item li:last-child{margin-bottom:0}.project__tech-item li:before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:3px;background:var(--mint)}.project__tech-item:nth-child(2) li:before{background:var(--orange)}.project__tech-item:nth-child(3) li:before{background:var(--blue)}.project__steps{margin:0;padding:0;list-style:none;display:grid;gap:12px}.project__step{display:flex;gap:16px;padding:16px 20px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.project__step-num{display:grid;flex-shrink:0;width:34px;height:34px;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--pink),var(--orange));color:#fff;font-size:.9rem;font-weight:800}.project__step:nth-child(2) .project__step-num{background:linear-gradient(135deg,var(--yellow),var(--orange))}.project__step:nth-child(3) .project__step-num{background:linear-gradient(135deg,var(--mint),var(--blue))}.project__step:nth-child(4) .project__step-num{background:linear-gradient(135deg,var(--blue),var(--violet))}.project__step:nth-child(5) .project__step-num{background:linear-gradient(135deg,var(--violet),var(--pink))}.project__step h3{margin:0 0 4px;font-size:.98rem}.project__step p{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.7}.project__footer{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}@media(max-width:820px){.project__hero{grid-template-columns:1fr;padding:24px}.project__features{grid-template-columns:1fr}}.site-footer{border-top:1px solid var(--border);background:#f7f9f7cc}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:var(--max-width);margin:0 auto;padding:28px 24px;color:var(--text-secondary);font-size:.8rem}.not-found{padding:72px 0;text-align:center}.not-found__code{margin:0;color:var(--primary);font-size:5rem;font-weight:800;letter-spacing:-.05em;line-height:1}.not-found h1{margin:18px 0 8px}.not-found p{margin:0 0 28px;color:var(--text-secondary)}@media(max-width:820px){.page{padding:32px 20px 72px}.hero{grid-template-columns:1fr;gap:36px;padding-top:12px}.hero__stats{gap:26px}.hero__text,.hero__visual{min-width:0}.hero__visual{width:100%;min-height:0}.blob--one{width:140px;height:140px}.blob--two{width:170px;height:170px}.avatar-card{width:100%;max-width:460px;height:auto;margin:0 auto;padding:22px 20px}.about__card{flex-direction:column;text-align:center}.post-nav{grid-template-columns:1fr}.post-nav__item--next{grid-column:1;text-align:left}}@media(max-width:560px){.site-header__inner{padding:12px 16px}.brand-gao{font-size:1.25rem}.brand__text{font-size:.9rem}.brand__text small{display:none}.nav{gap:2px}.nav__link{padding:6px 10px;font-size:.85rem}.hero h1{font-size:2rem}.hero__stats{justify-content:space-between;gap:12px}.avatar-card{padding:18px 16px}.avatar-card__head{gap:12px;align-items:flex-start}.avatar-card__brand{font-size:.56rem;letter-spacing:.16em}.avatar-card__name{font-size:1.28rem}.avatar-card__role{font-size:.76rem}.avatar-card__photo{width:84px;height:106px}.avatar-card__contact{gap:6px;font-size:.72rem}.avatar-card__pill{padding:5px 10px;overflow-wrap:anywhere;text-align:center}.post-card{padding:20px 18px}.post-card__title{font-size:1.06rem}.post-card__footer{flex-wrap:wrap;row-gap:10px}.read-more{margin-left:auto}.topic{padding:8px 14px;font-size:.84rem}.terminal{transform:none}.terminal__body{padding:18px 18px 22px;font-size:.78rem}}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#fff;color:var(--text);transition:transform .85s cubic-bezier(.76,0,.24,1),opacity .6s ease;will-change:transform}.intro--leaving{transform:translateY(-100%);opacity:.85;pointer-events:none}.intro:before{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,rgba(20,30,26,.035),transparent 62%);content:""}.intro__stars{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;opacity:.85}.intro__content{position:relative;z-index:2;padding:0 24px;text-align:center;animation:introFade .9s ease both}.intro__title{margin:0;font-family:Comic Sans MS,Chalkboard SE,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:clamp(3rem,9vw,5.6rem);font-weight:700;letter-spacing:.03em;line-height:1.05;animation:titlePulse 5s ease-in-out 1.2s infinite}.intro__title span{display:inline-block;opacity:0;animation:letterGlow .8s cubic-bezier(.2,.7,.2,1) forwards}.intro__subtitle{margin:24px 0 0;color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:clamp(.85rem,1.6vw,1.1rem);letter-spacing:.14em}.intro__subtitle:after{display:inline-block;width:9px;height:1.05em;margin-left:8px;background:var(--primary);content:"";vertical-align:-.15em;animation:cursorBlink 1.05s steps(2,start) infinite}.intro__start{display:inline-flex;align-items:center;margin-top:48px;padding:14px 34px;border:1px solid rgba(27,33,30,.25);border-radius:999px;background:transparent;color:var(--text);font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;cursor:pointer;animation:startPulse 2.6s ease-in-out infinite;transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease}.intro__start span{display:inline-block;margin-left:10px;transition:transform .25s ease}.intro__start:hover{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 34px #2f9e8a2e}.intro__start:hover span{transform:translate(6px)}.intro__wave{position:absolute;bottom:-1px;left:0;z-index:1;width:100%;height:160px;animation:waveDrift 10s ease-in-out infinite alternate}@keyframes introFade{0%{opacity:0}to{opacity:1}}@keyframes letterGlow{0%{opacity:0;filter:blur(8px);transform:translateY(26px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes titlePulse{0%,to{text-shadow:0 0 14px rgba(47,158,138,.12)}50%{text-shadow:0 0 30px rgba(47,158,138,.35)}}@keyframes cursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes startPulse{0%,to{border-color:#ff5d8f73;box-shadow:0 0 #ff5d8f00}50%{border-color:#ff5d8fd9;box-shadow:0 0 28px #ff5d8f33}}@keyframes waveDrift{0%{transform:translate(-1.5%)}to{transform:translate(1.5%)}}@media(max-width:560px){.intro__title{font-size:3rem}.intro__subtitle{font-size:.78rem;letter-spacing:.08em}.intro__start{margin-top:36px;padding:12px 26px;font-size:.7rem;letter-spacing:.26em}.intro__wave{height:90px}}@media(prefers-reduced-motion:reduce){.post-card,.btn,.post-nav__item,.hero__cursor,.terminal,.terminal__cursor,.intro,.intro__content,.intro__title,.intro__title span,.intro__subtitle:after,.intro__start,.intro__wave{animation:none;transition:none}}.eyebrow{color:var(--violet-ink)}.nav__link:hover{background:var(--yellow-soft);color:var(--yellow-ink)}.nav__link.is-active{background:var(--violet-soft);color:var(--violet-ink)}.btn--ghost:hover{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-ink)}.btn--primary{background:linear-gradient(135deg,var(--pink),var(--orange));box-shadow:0 12px 26px #ff5d8f47}.btn--primary:hover{box-shadow:0 16px 32px #ff5d8f5c}.hero__stats div:nth-child(1) strong{color:var(--pink-ink)}.hero__stats div:nth-child(2) strong{color:var(--violet-ink)}.hero__stats div:nth-child(3) strong{color:var(--blue-ink)}.section__link,.read-more{color:var(--violet-ink)}.terminal:before{position:absolute;top:0;right:0;left:0;z-index:1;height:3px;background:linear-gradient(90deg,var(--pink),var(--yellow),var(--mint),var(--blue),var(--violet));content:""}.terminal__tags{color:var(--violet-ink)}.post-grid .post-card:nth-child(3n+1):hover{border-color:var(--pink)}.post-grid .post-card:nth-child(3n+2):hover{border-color:var(--violet)}.post-grid .post-card:nth-child(3n+3):hover{border-color:var(--blue)}.tag-list .tag:nth-child(5n+1){background:var(--pink-soft);color:var(--pink-ink)}.tag-list .tag:nth-child(5n+2){background:var(--yellow-soft);color:var(--yellow-ink)}.tag-list .tag:nth-child(5n+3){background:var(--mint-soft);color:var(--mint-ink)}.tag-list .tag:nth-child(5n+4){background:var(--blue-soft);color:var(--blue-ink)}.tag-list .tag:nth-child(5n+5){background:var(--violet-soft);color:var(--violet-ink)}.tag-list a.tag:hover{background:var(--primary);color:#fff}.topic-list .topic{transition:transform .2s ease,border-color .2s ease,background-color .2s ease,color .2s ease}.topic-list .topic:nth-child(5n+1){border-color:transparent;background:var(--pink-soft);color:var(--pink-ink)}.topic-list .topic:nth-child(5n+2){border-color:transparent;background:var(--yellow-soft);color:var(--yellow-ink)}.topic-list .topic:nth-child(5n+3){border-color:transparent;background:var(--mint-soft);color:var(--mint-ink)}.topic-list .topic:nth-child(5n+4){border-color:transparent;background:var(--blue-soft);color:var(--blue-ink)}.topic-list .topic:nth-child(5n+5){border-color:transparent;background:var(--violet-soft);color:var(--violet-ink)}.topic-list .topic:hover{transform:translateY(-2px);border-color:currentColor}.filter-bar .filter:nth-child(6n+1){border-color:transparent;background:var(--pink-soft);color:var(--pink-ink)}.filter-bar .filter:nth-child(6n+2){border-color:transparent;background:var(--yellow-soft);color:var(--yellow-ink)}.filter-bar .filter:nth-child(6n+3){border-color:transparent;background:var(--mint-soft);color:var(--mint-ink)}.filter-bar .filter:nth-child(6n+4){border-color:transparent;background:var(--blue-soft);color:var(--blue-ink)}.filter-bar .filter:nth-child(6n+5){border-color:transparent;background:var(--violet-soft);color:var(--violet-ink)}.filter-bar .filter:nth-child(6n+6){border-color:transparent;background:var(--orange-soft);color:var(--orange-ink)}.filter-bar .filter:hover{border-color:currentColor}.filter-bar .filter.is-active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 6px 18px #ff5d8f4d}.prose a{color:var(--violet-ink);text-decoration-color:#7c6cf666}.prose blockquote{border-left-color:var(--pink);background:var(--pink-soft);color:#5a4a52}.prose code{background:var(--violet-soft);color:var(--violet-ink)}.prose li::marker{color:var(--pink)}.back-link:hover{color:var(--violet-ink)}.not-found__code{background:linear-gradient(90deg,var(--pink),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.intro:before{background:radial-gradient(560px 380px at 72% 28%,rgba(255,93,143,.07),transparent 62%),radial-gradient(560px 380px at 26% 74%,rgba(61,155,255,.07),transparent 62%)}.intro__title{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--text);-webkit-text-fill-color:var(--text);filter:drop-shadow(0 0 24px rgba(255,93,143,.14));animation:none}.intro__title span{-webkit-text-fill-color:currentColor}.intro__title span:nth-child(1){color:var(--pink)}.intro__title span:nth-child(2){color:var(--orange)}.intro__title span:nth-child(3){color:var(--yellow)}.intro__title span:nth-child(4){color:var(--mint)}.intro__title span:nth-child(5){color:var(--blue)}.intro__title span:nth-child(6){color:var(--violet)}.intro__start{border-color:#ff5d8f73;color:var(--pink-ink)}.intro__start:hover{border-color:var(--primary);background:var(--pink-soft);box-shadow:0 0 34px #ff5d8f38}@media(prefers-reduced-motion:reduce){.intro__title{animation:none}}
