@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;800;900&family=Noto+Serif+SC:wght@700;900&display=swap";:root{--bg-gradient:linear-gradient(135deg, #f7f9fc 0%, #edf3f8 48%, #f8fafc 100%);--primary-blue:#0f172a;--accent-blue:#2563eb;--accent-cyan:#0891b2;--accent-amber:#d97706;--accent-light:#eff6ff;--text-main:#334155;--text-muted:#64748b;--text-soft:#94a3b8;--glass-bg:#ffffffc7;--glass-border:#ffffffe6;--line-soft:#0f172a14;--shadow-elegant:0 24px 60px -24px #0f172a2e, inset 0 1px 0 #fff;--shadow-hover:0 30px 70px -26px #2563eb47, inset 0 1px 0 #fff}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-main);background:var(--bg-gradient);scrollbar-width:thin;scrollbar-color:#cbd5e1 #f8fafc;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.7;overflow-x:hidden}::selection{color:var(--primary-blue);background:#2563eb29}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #2563eb38}.portfolio-container{isolation:isolate;--scroll-progress:0;--scene-opacity:.18;--tech-opacity:.78;position:relative}.portfolio-container:before{content:"";z-index:-2;pointer-events:none;background-image:linear-gradient(#0f172a07 1px,#0000 1px),linear-gradient(90deg,#0f172a07 1px,#0000 1px),radial-gradient(circle at 50% 12%,#2563eb11,#0000 34%);background-size:56px 56px,56px 56px,100% 100%;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000009e,#0000002e 72%,#0000);mask-image:linear-gradient(#0000009e,#0000002e 72%,#0000)}.portfolio-container:after{content:"";z-index:-2;pointer-events:none;opacity:var(--scene-opacity);background:linear-gradient(#eff6ff14,#dbeafe52 58%,#e0f2fe33),linear-gradient(90deg,#bfdbfe21,#0000 17% 83%,#bae6fd21);transition:opacity .16s linear;position:fixed;inset:0}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#00000005}::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #f1f5f9;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.reveal-element{opacity:0;will-change:opacity, transform;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(40px)}.reveal-element.is-visible{opacity:1;transform:translateY(0)}.tech-atmosphere{z-index:-1;pointer-events:none;opacity:var(--tech-opacity);position:fixed;inset:0;overflow:hidden}.tech-dot-field{opacity:.46;background-image:radial-gradient(circle,#2563eb9e 1px,#0000 1.5px);background-size:16px 16px;width:240px;height:176px;position:absolute;-webkit-mask-image:linear-gradient(135deg,#000,#0000 76%);mask-image:linear-gradient(135deg,#000,#0000 76%)}.dot-field-left{top:16%;left:2.5%}.dot-field-right{bottom:11%;right:2%;transform:rotate(180deg)}.circuit-trace{opacity:.43;border-top:1px solid #2563eb8f;border-left:1px solid #2563eb8f;width:260px;height:170px;position:absolute}.circuit-trace:before{content:"";border-bottom:1px solid #0891b294;border-left:1px solid #0891b294;width:158px;height:72px;position:absolute;top:34px;left:34px}.circuit-trace:after{content:"";background:#f8fafc;border:2px solid #2563eb9e;border-radius:2px;width:7px;height:7px;position:absolute;top:-4px;right:-4px}.trace-left{top:31%;left:-84px}.trace-right{bottom:26%;right:-84px;transform:rotate(180deg)}.data-node{background:#f8fafc;border:2px solid #0891b2b8;border-radius:2px;width:8px;height:8px;position:absolute;box-shadow:0 0 0 5px #0891b20e}.node-one{top:22%;right:8%}.node-two{border-color:#2563ebb3;top:56%;left:5%}.node-three{border-color:#d977069e;bottom:38%;right:5%}.node-four{bottom:9%;left:10%}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);box-shadow:var(--shadow-elegant);border-radius:24px;transition:all .5s cubic-bezier(.16,1,.3,1)}.navbar{-webkit-backdrop-filter:blur(20px);z-index:1000;background:#ffffffa6;border-bottom:1px solid #ffffffb3;width:100%;transition:all .4s;position:fixed;top:0;box-shadow:0 4px 30px #00000008}.nav-content{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:.95rem 2rem;display:flex}.logo{color:var(--primary-blue);cursor:pointer;letter-spacing:0;font-size:1.55rem;font-weight:800;transition:transform .3s}.logo:hover{transform:scale(1.05)}.logo .dot{color:var(--accent-blue)}.nav-links{align-items:center;display:flex}.mobile-nav-title{display:none}.nav-links a{cursor:pointer;color:var(--text-muted);margin-left:2.35rem;font-size:.94rem;font-weight:700;text-decoration:none;transition:color .3s;position:relative}.nav-links a.active{color:var(--primary-blue);font-weight:700}.nav-links a:after{content:"";background:var(--accent-blue);border-radius:2px;width:0%;height:2px;transition:width .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.nav-links a.active:after,.nav-links a:hover:after{width:100%}.nav-links a:hover{color:var(--primary-blue)}.lang-toggle{color:var(--primary-blue);cursor:pointer;background:#ffffffd1;border:1px solid #0f172a1a;border-radius:50px;margin-left:2.35rem;padding:.48rem 1.12rem;font-size:.85rem;font-weight:800;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 10px #00000005}.lang-toggle:hover{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue);transform:translateY(-2px);box-shadow:0 6px 15px #0f172a26}.mobile-menu-toggle{display:none}.section-wrapper{flex-direction:column;justify-content:center;min-height:100vh;display:flex;position:relative}.section{padding:80px 2rem 40px}.section-inner{width:100%;max-width:1150px;margin:0 auto}.section-header{text-align:center;margin-bottom:2.5rem}.section-header h2{color:var(--accent-blue);text-transform:uppercase;letter-spacing:3px;justify-content:center;align-items:center;margin-bottom:.55rem;font-size:.88rem;font-weight:800;display:flex}.section-header .section-title{color:var(--primary-blue);letter-spacing:0;background:linear-gradient(135deg,#0f172a 0%,#334155 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.55rem;font-weight:900}.next-btn{width:42px;height:42px;color:var(--primary-blue);cursor:pointer;background:#fff;border:1px solid #0000000d;border-radius:50%;justify-content:center;align-items:center;margin:20px auto 0;transition:all .3s cubic-bezier(.16,1,.3,1);animation:2s infinite bounce;display:flex;box-shadow:0 4px 15px #0000000d}.next-btn svg{width:18px;height:18px}.next-btn:hover{background:var(--primary-blue);color:#fff;animation:none;transform:translateY(4px)scale(1.05);box-shadow:0 8px 25px #0f172a33}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(8px)}60%{transform:translateY(4px)}}.hero-section{padding-top:80px}.fade-in-up{animation:1.2s cubic-bezier(.16,1,.3,1) forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.hero-content{text-align:center;z-index:10;max-width:980px;margin:0 auto;padding:0 1.5rem}.avatar-wrapper{background:linear-gradient(135deg, var(--accent-blue), #60a5fa, #93c5fd);border-radius:50%;width:180px;height:180px;margin:0 auto 1.5rem;padding:6px;transition:all .5s cubic-bezier(.16,1,.3,1);animation:5s ease-in-out infinite avatarBreath;box-shadow:0 15px 40px -5px #2563eb59}@keyframes avatarBreath{0%,to{box-shadow:0 15px 40px -5px #2563eb59}50%{box-shadow:0 25px 50px 5px #2563eb80}}.avatar-wrapper:hover{animation:none;transform:translateY(-10px)scale(1.05);box-shadow:0 30px 60px -10px #2563eb99}.avatar-wrapper img{object-fit:cover;background:#fff;border:4px solid #fff;border-radius:50%;width:100%;height:100%}.subtitle{color:var(--text-muted);letter-spacing:1.2px;text-transform:uppercase;margin-bottom:1rem;font-size:1.08rem;font-weight:700}.greeting{color:var(--primary-blue);letter-spacing:0;margin-bottom:2rem;font-size:4.15rem;font-weight:900;line-height:1.1}html[lang=zh] .greeting{letter-spacing:2px;font-family:Noto Serif SC,Songti SC,STZhongsong,STKaiti,serif;font-weight:900}html[lang=zh] .greeting .highlight{background:linear-gradient(120deg,#0f172a 0%,#2563eb 80%,#60a5fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;padding-right:8px;font-weight:900}.highlight{background:linear-gradient(135deg, var(--primary-blue) 0%, var(--accent-blue) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;padding-right:5px}.contact-badges{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.badge{color:var(--text-main);background:#ffffffe6;border:1px solid #fff;border-radius:50px;align-items:center;padding:.75rem 1.5rem;font-size:.9rem;font-weight:700;transition:all .4s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 4px 15px #0f172a0a}.badge:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0f172a14}.badge.link{cursor:pointer;border:1px solid #2563eb1a;text-decoration:none}.badge.link:hover{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;box-shadow:0 15px 30px #2563eb40}.badge.link:hover .el-icon{color:#fff}.brand-icon{object-fit:contain;flex:0 0 17px;width:17px;height:17px;margin-right:6px;display:inline-block}.badge.link:hover .brand-icon{filter:brightness(0)invert()}.hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:760px;margin:2.2rem auto 0;display:grid}.metric-card{background:#ffffffad;border:1px solid #ffffffeb;border-radius:18px;flex-direction:column;justify-content:center;min-height:92px;padding:1rem 1.1rem;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 12px 34px -20px #0f172a47}.metric-card:hover{transform:translateY(-5px);box-shadow:0 18px 44px -22px #2563eb61}.metric-card strong{color:var(--primary-blue);font-size:1.35rem;font-weight:900;line-height:1.2}.metric-card span{color:var(--text-muted);margin-top:.35rem;font-size:.86rem;font-weight:700}.scroll-indicator{cursor:pointer;opacity:.6;transition:all .3s;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.scroll-indicator:hover{opacity:1;transform:translate(-50%)translateY(5px)}.mouse{border:2px solid var(--text-muted);border-radius:15px;width:26px;height:42px;position:relative}.mouse:before{content:"";background:var(--text-muted);border-radius:50%;width:4px;height:4px;animation:1.5s infinite scroll;position:absolute;top:6px;left:50%;transform:translate(-50%)}@keyframes scroll{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,15px)}}.about-summary{border-left:4px solid var(--accent-blue);background:linear-gradient(135deg,#2563eb0d,#0891b20a);border-radius:0 16px 16px 0;margin-bottom:1.6rem;padding:1.3rem 2rem;position:relative}.about-summary:before{content:"\"";color:#2563eb1a;pointer-events:none;font-family:serif;font-size:5rem;line-height:1;position:absolute;top:-15px;left:10px}.about-summary p{color:var(--text-main);z-index:1;font-size:1.05rem;font-weight:600;line-height:1.75;position:relative}.strength-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:2.2rem;display:grid}.strength-item{background:#ffffffb8;border:1px solid #0f172a0f;border-radius:16px;padding:1.2rem;box-shadow:0 8px 24px -18px #0f172a40}.strength-item h4{color:var(--primary-blue);margin-bottom:.55rem;font-size:1rem;font-weight:900}.strength-item p{color:var(--text-muted);font-size:.92rem;font-weight:600;line-height:1.65}.about-divider{background:linear-gradient(90deg,#0000,#00000014,#0000);width:100%;height:1px;margin-bottom:2.5rem}.edu-info h3{color:var(--primary-blue);margin-bottom:2rem;font-size:1.5rem;font-weight:900;display:inline-block;position:relative}.edu-info h3:after{content:"";background:var(--accent-blue);border-radius:2px;width:40px;height:4px;position:absolute;bottom:-8px;left:0}.edu-grid{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.edu-item{flex-direction:column;display:flex}.edu-item.full-width{grid-column:1/-1}.edu-item .label{color:var(--accent-blue);background:var(--accent-light);text-transform:uppercase;letter-spacing:.5px;border-radius:50px;align-items:center;width:fit-content;margin-bottom:.8rem;padding:.4rem 1rem;font-size:.85rem;font-weight:800;display:inline-flex}.edu-item .value{color:var(--text-main);font-size:1.1rem;font-weight:500;line-height:1.6}.edu-item .value strong{color:var(--primary-blue);font-weight:800}.edu-item .value .time{color:var(--text-muted);margin-left:5px;font-size:.9em}.projects-grid{flex-direction:column;gap:3rem;display:flex}.project-card{flex-direction:column;padding:3rem;display:flex;position:relative;overflow:visible}.project-card:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(135deg,#2563eb1f,#0000 32%,#0891b214);transition:opacity .4s;position:absolute;inset:0}.project-card:hover:before{opacity:1}.project-card:hover{box-shadow:var(--shadow-hover);border-color:#2563eb33;transform:translateY(-6px)}.project-header{border-bottom:1px dashed #00000014;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.2rem;display:flex}.project-header h3{color:var(--primary-blue);letter-spacing:0;margin:0;font-size:1.8rem;font-weight:900}.project-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.7rem;display:flex}.project-visit-link{color:#1d4ed8;white-space:nowrap;background:#ffffffd1;border:1px solid #2563eb33;border-radius:7px;justify-content:center;align-items:center;gap:.45rem;min-height:38px;padding:.48rem .82rem;font-size:.82rem;font-weight:900;line-height:1;text-decoration:none;transition:color .25s,background-color .25s,border-color .25s,transform .25s,box-shadow .25s;display:inline-flex;box-shadow:0 10px 24px -20px #2563eba6}.project-visit-link svg{width:15px;height:15px}.project-visit-link:hover{color:#fff;background:#2563eb;border-color:#2563eb;transform:translateY(-2px);box-shadow:0 14px 28px -18px #2563ebb8}.project-visit-link:active{transform:translateY(0)}.project-meta{color:var(--accent-blue);background:var(--accent-light);border:1px solid #2563eb1a;border-radius:50px;align-items:center;gap:.8rem;padding:.5rem 1.2rem;font-size:.9rem;font-weight:700;display:flex}.project-meta .time{color:var(--text-muted);font-weight:600}.project-meta .divider{color:#cbd5e1}.project-body{grid-template-columns:1fr 1.4fr;align-items:center;gap:3rem;display:grid}.project-body.no-media{grid-template-columns:1fr}.project-body.no-media .project-info{order:initial;max-width:none}.project-card:nth-child(2n) .project-body{grid-template-columns:1.4fr 1fr}.project-card:nth-child(2n) .project-info{order:2}.project-card:nth-child(2n) .project-image-wrapper{order:1;padding-left:20px;padding-right:0}.project-card:nth-child(2n) .image-backdrop{left:0;right:20px}.project-card:nth-child(2n) .carousel-container{left:20px;right:0}.project-info{flex-direction:column;gap:1.2rem;display:flex}.project-desc{color:var(--text-main);margin:0;font-size:1rem;font-weight:600;line-height:1.75}.tech-stack{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.tech-tag{color:var(--text-main);cursor:default;background:#fff;border:1px solid #2563eb1a;border-radius:8px;padding:.3rem .8rem;font-size:.8rem;font-weight:600;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 8px #00000005}.tech-tag:hover{background:var(--accent-light);color:var(--accent-blue);border-color:#2563eb4d;transform:translateY(-2px)}.project-impact{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.impact-item{background:linear-gradient(135deg,#ffffffdb,#eff6ffb8);border:1px solid #2563eb1a;border-radius:14px;flex-direction:column;justify-content:center;min-height:72px;padding:.85rem .9rem;display:flex;box-shadow:0 8px 22px -18px #0f172a47}.impact-item strong{color:var(--primary-blue);font-size:1.02rem;font-weight:900;line-height:1.2}.impact-item span{color:var(--text-muted);margin-top:.3rem;font-size:.78rem;font-weight:700;line-height:1.35}.project-details{flex-direction:column;justify-content:center;margin:0;padding-left:0;display:flex}.project-details li{color:var(--text-main);margin-bottom:.72rem;padding-left:1.5rem;font-size:.95rem;font-weight:500;line-height:1.58;list-style:none;transition:transform .2s;position:relative}.project-details li:hover{color:var(--primary-blue);transform:translate(6px)}.project-details li:before{content:"";background-color:var(--accent-blue);border-radius:50%;width:5px;height:5px;position:absolute;top:8px;left:0;box-shadow:0 0 8px #2563eb80}.project-image-wrapper{aspect-ratio:16/10;width:100%;height:auto;padding-bottom:20px;padding-right:20px;position:relative}.image-backdrop{z-index:1;background:linear-gradient(135deg,#e2e8f0cc,#94a3b866);border:1px solid #fffc;border-radius:20px;transition:all .5s cubic-bezier(.16,1,.3,1);position:absolute;inset:20px 0 0 20px}.carousel-container{z-index:2;background:#0f172a;border:1px solid #ffffff1a;border-radius:20px;transition:all .5s cubic-bezier(.16,1,.3,1);position:absolute;inset:0 20px 20px 0;overflow:hidden;box-shadow:0 10px 30px #0000001a}.project-image-wrapper:hover .image-backdrop{filter:blur(2px);background:linear-gradient(135deg,#60a5fa73,#2563eb4d);border-color:#60a5fa66;transform:translate(8px,8px)}.project-image-wrapper:hover .carousel-container{transform:translate(-4px,-4px);box-shadow:0 20px 40px #0f172a33}.project-card:nth-child(2n) .project-image-wrapper:hover .image-backdrop{transform:translate(-8px,8px)}.project-card:nth-child(2n) .project-image-wrapper:hover .carousel-container{transform:translate(4px,-4px)}.carousel-track{will-change:transform;height:100%;transition:transform .7s cubic-bezier(.25,1,.5,1);display:flex}.carousel-slide{background:#f8fafc;flex:0 0 100%;width:100%;height:100%;position:relative}.carousel-slide img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .8s}.img-overlay{pointer-events:none;background:linear-gradient(#0000 60%,#0009 100%);position:absolute;inset:0}.carousel-ctrl{-webkit-backdrop-filter:blur(12px);color:#fff;cursor:pointer;opacity:0;z-index:10;background:#fff3;border:1px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-ctrl svg{width:20px;height:20px}.carousel-container:hover .carousel-ctrl{opacity:1}.carousel-ctrl:hover{background:var(--accent-blue);border-color:var(--accent-blue);transform:translateY(-50%)scale(1.1);box-shadow:0 0 20px #2563eb99}.carousel-ctrl.prev{left:15px}.carousel-ctrl.next{right:15px}.carousel-indicators{z-index:10;gap:6px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.carousel-indicators .dot{cursor:pointer;background:#ffffff80;border-radius:50px;width:6px;height:6px;transition:all .4s cubic-bezier(.25,1,.5,1);box-shadow:0 2px 5px #0003}.carousel-indicators .dot.active{background:#fff;width:20px;box-shadow:0 0 10px #fffc}.project-card.portrait-media .project-image-wrapper{aspect-ratio:4/5;max-width:440px;margin:0 auto;padding:0}.project-card.portrait-media .image-backdrop{filter:blur();background:radial-gradient(circle at 30% 15%,#60a5fa47,#0000 36%),linear-gradient(135deg,#0f172a1f,#2563eb2e);border-radius:34px;inset:7% 11%}.project-card.portrait-media .carousel-container:before{content:"";z-index:12;background:#ffffff47;border-radius:999px;width:42px;height:5px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.project-card.portrait-media .carousel-slide img{object-fit:cover}.project-card.portrait-media .carousel-ctrl{background:#0f172a61;width:34px;height:34px}.project-card.portrait-media .project-image-wrapper:hover .image-backdrop{filter:blur(3px);transform:translateY(8px)scale(.98)}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;display:grid}.skill-category{flex-direction:column;padding:2.35rem 2rem;display:flex;position:relative;overflow:hidden}.skill-category:before{content:"";background:linear-gradient(90deg, var(--accent-blue), transparent);opacity:0;width:100%;height:4px;transition:opacity .4s;position:absolute;top:0;left:0}.skill-category:hover{box-shadow:var(--shadow-hover);border-color:#2563eb40;transform:translateY(-5px)}.skill-category:hover:before{opacity:1}.skill-category h3{color:var(--primary-blue);align-items:center;margin-bottom:1.5rem;font-size:1.2rem;font-weight:800;display:flex}.icon-box{background:var(--accent-light);border:1px solid #2563eb1a;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;margin-right:12px;display:flex}.tags{flex-wrap:wrap;gap:.8rem;display:flex}.tag{color:var(--text-main);cursor:default;background:#fff;border:1px solid #00000014;border-radius:50px;padding:.4rem 1rem;font-size:.85rem;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 5px #00000005}.tag:hover{background:linear-gradient(135deg, var(--accent-blue), #3b82f6);color:#fff;border-color:#0000;transform:translateY(-4px)scale(1.05);box-shadow:0 10px 20px #2563eb40}.skill-tag{background:#ffffffdb;border-radius:14px;align-items:center;gap:.58rem;min-height:42px;padding:.42rem .9rem .42rem .5rem;display:inline-flex}.skill-logo-wrap{background:#f8fafcf0;border:1px solid #0f172a0f;border-radius:10px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:inset 0 1px #ffffffe0}.skill-logo{object-fit:contain;width:18px;height:18px;display:block}.skill-initial{color:var(--accent-blue);letter-spacing:0;font-size:.68rem;font-weight:900;line-height:1;display:none}.skill-logo-wrap.logo-missing .skill-logo{display:none}.skill-logo-wrap.logo-missing .skill-initial,.skill-logo-wrap:not(.has-logo) .skill-initial{display:inline-flex}.skill-tag:hover .skill-logo-wrap{background:#ffffffeb;border-color:#ffffffa3}.skill-tag:hover .skill-initial{color:var(--primary-blue)}html{scroll-padding-top:96px}.project-header h3,.award-entry h4,.skill-tag,.badge,.metric-card span{overflow-wrap:anywhere}.skill-tag{max-width:100%}.skill-tag>span:last-child{min-width:0}@media (width<=768px){html{scroll-padding-top:124px}.navbar{background:#ffffffd1}.nav-content{flex-wrap:wrap;align-items:center;gap:.58rem .8rem}.nav-links{scrollbar-width:none;-webkit-overflow-scrolling:touch;order:2;gap:.45rem;width:100%;padding:.15rem 0 .2rem;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-links a{background:#f8fafcbd;border:1px solid #0f172a0f;border-radius:999px;flex:none;align-items:center;min-height:32px;margin-left:0;padding:.36rem .72rem;font-size:.76rem;line-height:1;display:inline-flex}.nav-links a:after{display:none}.nav-links a.active{color:#fff;background:var(--primary-blue);border-color:var(--primary-blue)}.lang-toggle{order:1;margin-left:auto}.section{padding-top:104px}.hero-section{padding-top:118px}.skills-grid{grid-template-columns:1fr;gap:1rem}.skill-category{padding:1.25rem}.skill-category h3{margin-bottom:1rem;font-size:1.05rem;line-height:1.25}.tags{gap:.55rem}.skill-tag{border-radius:12px;min-height:38px;padding:.34rem .68rem .34rem .4rem;font-size:.76rem;line-height:1.25}.skill-logo-wrap{border-radius:9px;flex-basis:25px;width:25px;height:25px}.skill-logo{width:16px;height:16px}.skill-initial{font-size:.62rem}.footer{padding:1.4rem 1rem 2rem;font-size:.82rem}}@media (width<=380px){.nav-links a{padding-inline:.58rem;font-size:.72rem}.skill-tag{width:100%}}.awards-container{padding:3rem}.award-timeline{margin:0;padding:0;list-style:none;position:relative}.award-timeline:before{content:"";background:linear-gradient(to bottom, var(--accent-blue), #93c5fd, transparent);border-radius:4px;width:4px;position:absolute;top:0;bottom:0;left:7px}.award-item{padding-bottom:2.5rem;padding-left:3rem;transition:transform .4s cubic-bezier(.16,1,.3,1);position:relative}.award-item:last-child{padding-bottom:0}.award-item:hover{transform:translate(10px)}.award-dot{border:4px solid var(--accent-blue);width:18px;height:18px;box-shadow:0 0 0 4px var(--accent-light);background:#fff;border-radius:50%;transition:all .4s cubic-bezier(.16,1,.3,1);position:absolute;top:6px;left:0}.award-item:hover .award-dot{background:var(--accent-blue);transform:scale(1.2);box-shadow:0 0 0 8px #2563eb26}.award-content{background:#ffffffe6;border:1px solid #0000000d;border-radius:16px;padding:1.15rem 1.5rem;transition:all .4s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 20px #00000008}.award-item:hover .award-content{border-color:#2563eb33;box-shadow:0 12px 30px #2563eb14}.award-text{color:var(--primary-blue);font-size:1.05rem;font-weight:600;line-height:1.5;transition:color .3s}.award-item:hover .award-text{color:var(--accent-blue)}.footer{text-align:center;color:var(--text-muted);padding:2rem 2rem 3rem;font-size:.95rem;font-weight:500}.beian-info{margin-top:.6rem;font-size:.85rem}.beian-info a{color:#94a3b8;text-decoration:none;transition:all .3s}.beian-info a:hover{color:var(--accent-blue)}@media (width<=992px){.nav-links a{margin-left:1.5rem}.greeting{font-size:3.2rem}.project-header{flex-direction:column;align-items:flex-start;gap:1rem}.project-body,.project-card:nth-child(2n) .project-body{grid-template-columns:1fr;gap:2.5rem}.project-image-wrapper,.project-card:nth-child(2n) .project-image-wrapper{order:-1;padding-left:0;padding-right:20px}.project-card:nth-child(2n) .image-backdrop{left:20px;right:0}.project-card:nth-child(2n) .carousel-container{left:0;right:20px}}@media (width<=768px){.nav-links a{display:none}.lang-toggle{margin-left:0}.section{padding:70px 1rem 30px}.greeting{font-size:2.8rem}.avatar-wrapper{width:140px;height:140px}.about-card,.project-card,.awards-container{padding:1.8rem 1.2rem}.about-summary{margin-bottom:1.5rem;padding:1rem 1.2rem}.about-summary p{font-size:1rem}.about-divider{margin-bottom:1.5rem}.edu-grid{grid-template-columns:1fr;gap:1.5rem}.project-header h3{font-size:1.5rem}.project-image-wrapper{width:calc(100% - 12px);padding-bottom:12px;padding-right:12px}.image-backdrop{border-radius:16px;top:12px;left:12px}.carousel-container{border-radius:16px;bottom:12px;right:12px}.carousel-ctrl{opacity:1;background:#0006;border:none;width:34px;height:34px}.carousel-ctrl.prev{left:10px}.carousel-ctrl.next{right:10px}}@media (width<=992px){.hero-metrics{grid-template-columns:1fr;max-width:420px}.metric-card{min-height:78px}.strength-grid{grid-template-columns:1fr}}@media (width<=768px){.hero-content{padding:0 1rem}.subtitle{letter-spacing:.8px;font-size:.95rem}.contact-badges{gap:.75rem}.badge{justify-content:center;width:100%;padding:.72rem 1rem}.hero-metrics{gap:.75rem;margin-top:1.5rem}.metric-card strong{font-size:1.15rem}.metric-card span{font-size:.82rem}.strength-grid{gap:.8rem;margin-bottom:1.5rem}.strength-item{padding:1rem}}.award-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;display:grid}.award-group{background:#ffffffb8;border:1px solid #0f172a0f;border-radius:18px;min-height:100%;padding:1.35rem;transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .35s,box-shadow .35s;position:relative;overflow:hidden;box-shadow:0 12px 34px -26px #0f172a40}.award-group:before{content:"";background:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan), transparent);opacity:.85;height:3px;position:absolute;inset:0 0 auto}.award-group-header{grid-template-columns:auto 1fr;align-items:start;gap:1rem;margin-bottom:1.1rem;display:grid}.award-index{width:42px;height:42px;color:var(--accent-blue);background:var(--accent-light);border:1px solid #2563eb1f;border-radius:14px;justify-content:center;align-items:center;font-size:.82rem;font-weight:900;display:flex}.award-group h3{color:var(--primary-blue);font-size:1.15rem;font-weight:900;line-height:1.25}.award-heading-row{justify-content:space-between;align-items:center;gap:.85rem;display:flex}.award-count{color:var(--text-muted);background:#ffffffdb;border:1px solid #0f172a0f;border-radius:999px;flex:none;padding:.26rem .58rem;font-size:.72rem;font-weight:900;line-height:1.2}.award-group-header p{color:var(--text-muted);margin-top:.35rem;font-size:.9rem;font-weight:600;line-height:1.5}.award-list{flex-direction:column;gap:.75rem;display:flex}.award-entry{background:#f8fafcd1;border:1px solid #0f172a0f;border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:1rem;padding:.95rem 1rem;display:grid}.award-entry-main{min-width:0}.award-time{color:var(--text-soft);margin-bottom:.25rem;font-size:.76rem;font-weight:800;line-height:1;display:inline-flex}.award-entry h4{color:var(--text-main);font-size:.95rem;font-weight:800;line-height:1.45}.award-level{max-width:140px;color:var(--accent-blue);text-align:center;white-space:normal;background:#fff;border:1px solid #2563eb1f;border-radius:999px;padding:.42rem .72rem;font-size:.78rem;font-weight:900;line-height:1.25}@media (width<=992px){.project-impact,.award-groups,.project-card.portrait-media .project-body,.project-card.portrait-media:nth-child(2n) .project-body{grid-template-columns:1fr}.project-card.portrait-media .project-image-wrapper,.project-card.portrait-media:nth-child(2n) .project-image-wrapper{width:min(100%,430px);padding:0}}@media (width<=768px){.impact-item{min-height:64px}.project-card.portrait-media .project-image-wrapper{aspect-ratio:4/5.35}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-width:7px;border-radius:30px;width:min(68%,250px);inset:4% auto 4% 50%;transform:translate(-50%)}.project-card.portrait-media .image-backdrop,.project-card.portrait-media:nth-child(2n) .image-backdrop{border-radius:30px;inset:7% 10%}.award-groups{gap:1rem}.award-group{padding:1.1rem}.award-heading-row{align-items:flex-start}.award-entry{grid-template-columns:1fr;align-items:start;gap:.7rem}.award-level{width:fit-content;max-width:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.project-image-wrapper{perspective:1400px}.media-glow{z-index:0;pointer-events:none;filter:blur(28px);opacity:.82;background:radial-gradient(circle at 22% 20%,#2563eb38,#0000 34%),radial-gradient(circle at 78% 78%,#0891b22e,#0000 36%);transition:opacity .45s,transform .45s cubic-bezier(.16,1,.3,1);position:absolute;inset:-10% -8% 0}.project-image-wrapper:hover .media-glow{opacity:1;transform:translateY(-8px)scale(1.03)}.project-card:not(.portrait-media) .carousel-container{background:linear-gradient(#f8fafc,#f8fafc) padding-box padding-box,linear-gradient(135deg,#ffffffe6,#2563eb38,#0891b22e) border-box;border:1px solid #0000;border-radius:18px;inset:0 18px 56px 0;box-shadow:0 24px 60px -28px #0f172a75,inset 0 0 0 1px #ffffffbd}.project-card:not(.portrait-media) .carousel-container:before{content:"";z-index:12;pointer-events:none;background:radial-gradient(circle at 18px 17px,#ef4444 0 4px,#0000 4.5px),radial-gradient(circle at 34px 17px,#f59e0b 0 4px,#0000 4.5px),radial-gradient(circle at 50px 17px,#22c55e 0 4px,#0000 4.5px),linear-gradient(#fffffff0,#f1f5f9e6);border-bottom:1px solid #0f172a14;height:34px;position:absolute;top:0;left:0;right:0}.project-card:not(.portrait-media) .carousel-container:after{content:"";z-index:13;pointer-events:none;background:#94a3b829;border-radius:999px;height:12px;position:absolute;top:11px;left:74px;right:18px;box-shadow:inset 0 0 0 1px #94a3b81a}.project-card:not(.portrait-media) .carousel-track{height:100%;padding-top:34px}.project-card:not(.portrait-media) .carousel-slide{background:linear-gradient(135deg,#f8fafcf5,#e2e8f0b3);padding:10px}.project-card:not(.portrait-media) .carousel-slide img{object-fit:contain;background:#fff;border-radius:10px;box-shadow:0 12px 28px -24px #0f172a73}.project-card:not(.portrait-media) .image-backdrop{background:linear-gradient(135deg,#2563eb29,#0891b21a),#ffffff70;border-radius:20px;inset:22px 0 46px 28px;box-shadow:0 22px 60px -34px #0f172a80}.project-card:not(.portrait-media) .img-overlay{background:linear-gradient(#0000 64%,#0f172a1a)}.project-card:not(.portrait-media) .carousel-indicators{display:none}.project-thumbs{z-index:16;-webkit-backdrop-filter:blur(18px);background:#ffffffad;border:1px solid #ffffffdb;border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:8px;padding:8px;display:grid;position:absolute;bottom:0;left:0;right:18px;box-shadow:0 12px 34px -26px #0f172a6b}.project-thumbs.compact{grid-template-columns:repeat(auto-fit,minmax(46px,1fr))}.thumb-item{cursor:pointer;opacity:.68;background:#fff;border:1px solid #0f172a14;border-radius:10px;height:44px;padding:0;transition:transform .25s,opacity .25s,border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.thumb-item img{object-fit:cover;width:100%;height:100%;display:block}.thumb-item:hover,.thumb-item.active{opacity:1;border-color:#2563eb73;transform:translateY(-2px);box-shadow:0 10px 24px -16px #2563eb94}.thumb-item.active:after{content:"";background:var(--accent-blue);border-radius:999px;height:3px;position:absolute;bottom:5px;left:8px;right:8px}.project-card.portrait-media .project-image-wrapper{aspect-ratio:5/6.35;max-width:520px}.project-card.portrait-media .carousel-container{border:9px solid #0b1220;border-radius:36px;width:min(58%,278px);top:2%;bottom:12%;box-shadow:0 34px 78px -34px #0f172ad1,inset 0 0 0 1px #ffffff1f,0 0 0 8px #ffffff6b}.project-card.portrait-media .carousel-container:before{background:#ffffff52;width:48px;height:5px;top:9px}.project-card.portrait-media .carousel-container:after{content:"";z-index:12;background:#ffffff52;border-radius:999px;width:34px;height:3px;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}.project-card.portrait-media .carousel-slide{background:#020617}.project-card.portrait-media .carousel-slide img{object-fit:cover;border-radius:24px}.project-card.portrait-media .project-thumbs{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));width:min(88%,390px);bottom:0;left:50%;right:auto;transform:translate(-50%)}.project-card.portrait-media .thumb-item{border-radius:12px;height:56px}.project-card.portrait-media .carousel-ctrl.prev{left:10px}.project-card.portrait-media .carousel-ctrl.next{right:10px}@media (width<=992px){.project-card:not(.portrait-media) .carousel-container,.project-card:not(.portrait-media) .project-thumbs{right:0}}@media (width<=768px){.project-card:not(.portrait-media) .project-image-wrapper{aspect-ratio:16/11.5;width:100%;padding:0 0 52px}.project-card:not(.portrait-media) .carousel-container{bottom:56px;right:0}.project-card:not(.portrait-media) .image-backdrop{bottom:50px}.project-thumbs{gap:6px;padding:6px;right:0}.thumb-item{height:38px}.project-card.portrait-media .project-image-wrapper{aspect-ratio:5/7.25;width:100%}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-width:7px;border-radius:30px;width:min(68%,246px);top:2%;bottom:13%}.project-card.portrait-media .carousel-slide img{border-radius:21px}.project-card.portrait-media .project-thumbs{width:min(96%,330px)}.project-card.portrait-media .thumb-item{height:48px}}.project-card{scroll-margin-top:105px}.section-inner{position:relative}.project-compass{z-index:900;opacity:0;pointer-events:none;width:122px;height:122px;transition:opacity .28s,transform .28s;position:fixed;top:50%;right:max(18px,50vw - 620px);transform:translateY(-50%)scale(.94)}.project-compass.visible{opacity:1;pointer-events:auto;transform:translateY(-50%)scale(1)}.compass-core{color:var(--primary-blue);-webkit-backdrop-filter:blur(18px);background:#ffffffc2;border:1px solid #ffffffe6;border-radius:50%;justify-content:center;align-items:center;font-size:.72rem;font-weight:900;display:flex;position:absolute;inset:37px;box-shadow:0 18px 44px -28px #0f172a6b}.compass-core:before{content:"";border:1px dashed #2563eb3d;border-radius:50%;position:absolute;inset:-31px}.compass-node{--angle:calc((360deg / var(--n)) * var(--i) - 90deg);width:30px;height:30px;color:var(--text-muted);transform:translate(-50%, -50%) rotate(var(--angle)) translate(58px) rotate(calc(-1 * var(--angle)));cursor:pointer;background:#ffffffd1;border:1px solid #2563eb29;border-radius:50%;justify-content:center;align-items:center;transition:transform .24s,color .24s,background .24s,border-color .24s,box-shadow .24s;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 12px 30px -22px #0f172a73}.compass-node span{font-size:.68rem;font-weight:900;line-height:1}.compass-node:after{content:attr(data-title);width:max-content;max-width:230px;color:var(--primary-blue);opacity:0;pointer-events:none;white-space:normal;background:#ffffffeb;border:1px solid #0f172a14;border-radius:12px;padding:.55rem .75rem;font-size:.82rem;font-weight:800;transition:opacity .2s,transform .2s;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)translate(6px);box-shadow:0 16px 38px -28px #0f172a8c}.compass-node:hover:after,.compass-node.active:after{opacity:1;transform:translateY(-50%)translate(0)}.compass-node:hover,.compass-node.active{color:#fff;background:var(--accent-blue);border-color:var(--accent-blue);box-shadow:0 18px 34px -20px #2563ebbf}.project-thumbs{display:none!important}.project-card:not(.portrait-media) .project-image-wrapper{aspect-ratio:16/9.8;padding:0}.project-card:not(.portrait-media) .carousel-container{border-radius:20px;bottom:0;right:0}.project-card:not(.portrait-media).dual-media .carousel-container{bottom:14%;right:10%;transform:rotateX(1deg)rotateY(-4deg)}.project-card:not(.portrait-media).dual-media:nth-child(2n) .carousel-container{left:10%;right:0;transform:rotateX(1deg)rotateY(4deg)}.secondary-window{z-index:3;aspect-ratio:16/10;background:linear-gradient(#f8fafc,#f8fafc) padding-box padding-box,linear-gradient(135deg,#fffffff2,#2563eb42) border-box;border:1px solid #0000;border-radius:16px;width:42%;position:absolute;bottom:0;right:0;overflow:hidden;box-shadow:0 24px 54px -28px #0f172a9e,inset 0 0 0 1px #ffffffc7}.project-card:not(.portrait-media):nth-child(2n) .secondary-window{left:0;right:auto}.secondary-window:before{content:"";z-index:2;background:radial-gradient(circle at 14px 12px,#ef4444 0 3px,#0000 3.5px),radial-gradient(circle at 27px 12px,#f59e0b 0 3px,#0000 3.5px),radial-gradient(circle at 40px 12px,#22c55e 0 3px,#0000 3.5px),linear-gradient(#fffffff5,#f1f5f9e6);border-bottom:1px solid #0f172a12;height:25px;position:absolute;top:0;left:0;right:0}.secondary-window img{object-fit:cover;width:100%;height:100%;padding-top:25px;display:block}.project-card.portrait-media .project-image-wrapper{aspect-ratio:16/11.5;max-width:620px;padding:0}.project-card.portrait-media .media-glow{filter:blur(36px);opacity:.72;inset:0}.project-card.portrait-media .carousel-container{background:linear-gradient(145deg,#ffffffc7,#f1f5f98f);border:0;border-radius:26px;width:min(72%,410px);inset:2% auto 2% 50%;transform:translate(-50%);box-shadow:0 32px 72px -34px #0f172abf,inset 0 0 0 1px #ffffffd9}.project-card.portrait-media .img-overlay{background:linear-gradient(#0000 70%,#0f172a14)}@media (width<=1220px){.project-compass{display:none}}@media (width<=992px){.project-card:not(.portrait-media).dual-media .carousel-container,.project-card:not(.portrait-media).dual-media:nth-child(2n) .carousel-container{bottom:0;left:0;right:0;transform:none}.secondary-window{display:none}.project-card.portrait-media .project-image-wrapper{aspect-ratio:16/12;width:min(100%,560px)}}@media (width<=768px){.project-card:not(.portrait-media) .project-image-wrapper,.project-card:not(.portrait-media).dual-media .project-image-wrapper{aspect-ratio:16/11.5;padding:0}.project-card.portrait-media .project-image-wrapper{aspect-ratio:4/4.8}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border:0;border-radius:24px;width:min(86%,360px);top:2%;bottom:2%}.project-card.portrait-media .carousel-slide{padding:8px}.project-card.portrait-media .carousel-slide img{border-radius:18px}}.project-compass{display:none!important}.project-wheel{z-index:900;opacity:0;pointer-events:none;width:86px;height:248px;transition:opacity .26s,transform .26s;position:fixed;top:50%;right:max(20px,50vw - 660px);transform:translateY(-50%)translate(8px)}.mobile-project-toc{display:none}.project-wheel.visible{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)}.project-wheel-rail{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#fff0,#ffffffa8 16%,#ffffffb8 84%,#fff0),linear-gradient(90deg,#0000 42px,#2563eb2e 42px 44px,#0000 44px);border-radius:999px;width:100%;height:100%;position:relative}.project-wheel-rail:active{cursor:grabbing}.project-wheel-rail:before,.project-wheel-rail:after{content:"";background:linear-gradient(#0000,#2563eb38,#0000);width:1px;height:72px;position:absolute;left:50%;transform:translate(-50%)}.wheel-item{--distance:min(max(var(--offset), -3), 3);width:40px;height:40px;color:var(--text-muted);-webkit-backdrop-filter:blur(16px);transform:translate(-50%, -50%) translateY(calc(var(--offset) * 38px)) translateX(calc(var(--abs-offset) * -8px)) scale(calc(1 - var(--abs-offset) * .09));opacity:calc(1 - var(--abs-offset) * .22);cursor:pointer;background:#ffffffc7;border:1px solid #2563eb1f;border-radius:50%;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s,color .2s,background .2s,border-color .2s;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 14px 34px -28px #0f172a85}.wheel-item span{font-size:.72rem;font-weight:900;line-height:1}.wheel-item.active{color:#fff;background:var(--primary-blue);border-color:var(--primary-blue);opacity:1;box-shadow:0 18px 38px -22px #0f172aad}.wheel-item:after{content:attr(data-title);width:max-content;max-width:260px;color:var(--primary-blue);opacity:0;pointer-events:none;background:#fffffff0;border:1px solid #0f172a14;border-radius:13px;padding:.62rem .78rem;font-size:.84rem;font-weight:800;line-height:1.35;transition:opacity .2s,transform .2s;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)translate(8px);box-shadow:0 18px 42px -28px #0f172a94}.wheel-item:hover:after,.wheel-item.active:hover:after{opacity:1;transform:translateY(-50%)translate(0)}.wheel-item:hover{color:#fff;background:var(--accent-blue);border-color:var(--accent-blue)}.project-card.portrait-media .project-body{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr)}.project-card.portrait-media .project-image-wrapper{aspect-ratio:9/15.8;width:min(100%,440px);max-width:none;margin:0 auto;padding:0}.project-card.portrait-media .media-glow{filter:blur(34px);background:radial-gradient(circle at 50% 20%,#2563eb38,#0000 35%),radial-gradient(circle at 52% 78%,#0891b233,#0000 38%);inset:-5% -22%}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{background:#ffffffb3;border:0;border-radius:30px;width:min(88%,390px);inset:3% auto 3% 50%;transform:translate(-50%);box-shadow:0 32px 82px -42px #0f172ac7,inset 0 0 0 1px #ffffffdb}.project-card.portrait-media .carousel-slide img{object-fit:contain;background:0 0;border-radius:24px;box-shadow:0 16px 38px -26px #0f172a94}.project-card.portrait-media .carousel-indicators{bottom:12px}@media (width<=1340px){.project-wheel{right:12px}}@media (width<=1220px){.project-wheel{display:none}}@media (width<=992px){.project-card.portrait-media .project-body,.project-card.portrait-media:nth-child(2n) .project-body{grid-template-columns:1fr}.project-card.portrait-media .project-image-wrapper{aspect-ratio:9/15.8;width:min(100%,390px)}}@media (width<=768px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:9/15.8;width:min(100%,330px)}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-radius:26px;width:90%;top:3%;bottom:3%}.project-card.portrait-media .carousel-slide{padding:7px}.project-card.portrait-media .carousel-slide img{border-radius:20px}}.project-wheel{width:132px;height:302px;right:max(14px,50vw - 686px);transform:translateY(-50%)translate(16px)}.project-wheel.visible{transform:translateY(-50%)translate(0)}.project-wheel-rail{width:52px;box-shadow:none;background:linear-gradient(#0000,#ffffffad 13%,#ffffffc2 87%,#0000),linear-gradient(90deg,#0000 24px,#2563eb33 24px 26px,#0000 26px);border-radius:999px;margin-left:auto;overflow:visible}.project-wheel-rail:before,.project-wheel-rail:after{background:linear-gradient(#0000,#2563eb3d,#0000);height:86px;left:25px}.project-wheel-rail:before{top:-30px}.project-wheel-rail:after{bottom:-30px}.wheel-item{color:#47556994;width:44px;height:30px;transform:translate(-50%, -50%) translateY(calc(var(--offset) * 42px)) translateX(calc(var(--abs-offset) * -3px)) scale(calc(1 - var(--abs-offset) * .075));opacity:calc(1 - var(--abs-offset) * .2);background:#ffffff94;border-color:#2563eb14;border-radius:999px;justify-content:flex-end;gap:.58rem;padding:0 10px 0 0;transition:width .24s,transform .32s cubic-bezier(.16,1,.3,1),opacity .28s,color .2s,background .2s,border-color .2s,box-shadow .2s;left:25px;overflow:hidden;box-shadow:0 14px 34px -30px #0f172a85}.wheel-index{text-align:right;letter-spacing:0;flex:none;min-width:22px;font-size:.7rem;font-weight:900;line-height:1}.wheel-title{color:currentColor;text-align:left;text-overflow:ellipsis;white-space:nowrap;opacity:0;min-width:0;max-width:0;font-size:.78rem;font-weight:800;line-height:1.15;transition:max-width .24s,opacity .18s;overflow:hidden}.wheel-item.active{color:#fff;background:linear-gradient(135deg, var(--primary-blue), var(--accent-blue));border-color:#2563eb1f;width:52px;box-shadow:0 18px 38px -24px #2563ebd1,inset 0 1px #ffffff52}.project-wheel:hover .wheel-item,.project-wheel-rail:active .wheel-item,.wheel-item:hover{width:184px;color:var(--primary-blue);background:#ffffffeb;border-color:#2563eb1f;padding-left:14px;box-shadow:0 18px 44px -30px #0f172a9e}.project-wheel:hover .wheel-title,.project-wheel-rail:active .wheel-title,.wheel-item:hover .wheel-title{opacity:1;max-width:126px}.project-wheel:hover .wheel-item.active,.project-wheel-rail:active .wheel-item.active,.wheel-item.active:hover{color:#fff;background:linear-gradient(135deg, var(--primary-blue), var(--accent-blue))}.wheel-item:after{display:none}.project-card.portrait-media .project-image-wrapper{aspect-ratio:9/16;width:min(100%,492px);min-height:0;overflow:visible}.project-card.portrait-media .image-backdrop{background:linear-gradient(150deg,#ffffff8f,#eff6ff4d),#ffffff2e;border-radius:32px;inset:0;box-shadow:0 34px 86px -46px #0f172ac7,inset 0 1px #ffffffc7,inset 0 0 0 1px #2563eb12}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{background:#ffffff70;border-radius:28px;width:94%;top:1.4%;bottom:1.4%;box-shadow:0 28px 78px -44px #0f172ac2,inset 0 0 0 1px #ffffffb8}.project-card.portrait-media .carousel-slide img{object-fit:contain;object-position:center;border-radius:24px;transform:none;box-shadow:0 18px 42px -30px #0f172aa8}.project-card.portrait-media .project-image-wrapper:hover .carousel-slide img{transform:none}.project-card.portrait-media .carousel-indicators{-webkit-backdrop-filter:blur(12px);background:#ffffff94;border-radius:999px;padding:4px 7px;bottom:10px}.project-card.portrait-media .carousel-ctrl{background:#ffffffb8}@media (width<=1400px){.project-wheel{width:112px;right:8px}.project-wheel:hover .wheel-item,.project-wheel-rail:active .wheel-item,.wheel-item:hover{width:164px}.project-wheel:hover .wheel-title,.project-wheel-rail:active .wheel-title,.wheel-item:hover .wheel-title{max-width:106px}}@media (width<=1220px){.project-wheel{display:none}}@media (width<=992px){.project-card.portrait-media .project-body,.project-card.portrait-media:nth-child(2n) .project-body{grid-template-columns:1fr}.project-card.portrait-media .project-image-wrapper{aspect-ratio:9/16;width:min(100%,456px)}}@media (width<=768px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:9/16;width:min(100%,372px)}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-radius:24px;width:94%;top:1.6%;bottom:1.6%}.project-card.portrait-media .carousel-slide{padding:4px}.project-card.portrait-media .carousel-slide img{border-radius:21px}}.project-wheel-rail{-webkit-backdrop-filter:blur(16px);background:linear-gradient(#0000,#ffffff6b 12%,#ffffff85 88%,#0000),linear-gradient(90deg,#0000 24px,#2563eb21 24px 26px,#0000 26px)}.project-wheel-rail:before,.project-wheel-rail:after{background:linear-gradient(#0000,#2563eb29,#0000)}.wheel-item{color:#1e40afad;-webkit-backdrop-filter:blur(18px);background:#ffffff7a;border-color:#2563eb14;box-shadow:0 14px 34px -30px #0f172a61,inset 0 1px #ffffff9e}.wheel-index,.wheel-title{text-shadow:0 1px 8px #ffffffb3}.wheel-item.active{color:#1d4ed8;background:#eff6ffb3;border-color:#2563eb2e;box-shadow:0 18px 42px -30px #2563eb94,inset 0 1px #ffffffc7,inset 0 0 0 1px #2563eb0f}.project-wheel:hover .wheel-item,.project-wheel-rail:active .wheel-item,.wheel-item:hover{color:#1e40af;background:#ffffffc2;border-color:#2563eb24;box-shadow:0 18px 44px -30px #0f172a6b,inset 0 1px #ffffffc7}.project-wheel:hover .wheel-item.active,.project-wheel-rail:active .wheel-item.active,.wheel-item.active:hover{color:#1d4ed8;background:#dbeafec7;border-color:#2563eb33}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{z-index:4;background:#ffffff8f;border-radius:27px;width:82%;top:2.2%;bottom:2.2%}.portrait-secondary-panel{z-index:3;aspect-ratio:9/16;opacity:.72;filter:saturate(.92)contrast(.98);background:#ffffff80;border:1px solid #ffffffa3;border-radius:23px;width:46%;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .3s;position:absolute;top:9%;right:0;overflow:hidden;transform:translate(4%)scale(.96);box-shadow:0 24px 58px -38px #0f172aad,inset 0 1px #ffffffb8}.portrait-secondary-panel img{object-fit:contain;border-radius:22px;width:100%;height:100%;padding:4px;display:block}@media (width<=992px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:9.6/16;width:min(100%,420px)}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{width:86%;left:50%}.portrait-secondary-panel{opacity:.46;width:40%}}@media (width<=768px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:9.2/16;width:min(100%,342px)}.portrait-secondary-panel{display:none}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{width:92%}}#projects .section-inner{max-width:1220px}.project-card:not(.portrait-media) .project-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.62fr);gap:clamp(2.4rem,4vw,4.4rem)}.project-card:not(.portrait-media):nth-child(2n) .project-body{grid-template-columns:minmax(0,1.62fr) minmax(0,.9fr)}.project-card:not(.portrait-media) .project-image-wrapper{aspect-ratio:16/9.35}.project-card:not(.portrait-media).dual-media .project-image-wrapper{aspect-ratio:16/10.2}.project-card:not(.portrait-media).dual-media .carousel-container{bottom:10%;right:7%}.project-card:not(.portrait-media).dual-media:nth-child(2n) .carousel-container{left:7%;right:0}.secondary-window{width:39%}.project-card.portrait-media .project-body{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:clamp(1.8rem,3.2vw,3.2rem)}.project-card.portrait-media:nth-child(2n) .project-body{grid-template-columns:minmax(320px,.88fr) minmax(0,1.12fr)}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-radius:26px;width:78%;top:3%;bottom:3%}.project-card.portrait-media .carousel-container{left:43%}.project-card.portrait-media:nth-child(2n) .carousel-container{left:57%}.portrait-secondary-panel{opacity:.62;border-radius:22px;width:42%;top:11%;transform:translate(3%)scale(.94)}@media (width<=992px){.section-wrapper{justify-content:flex-start;min-height:auto}.hero-section{justify-content:center;min-height:100svh}.project-card,.project-card:nth-child(2n),.project-card.portrait-media,.project-card.portrait-media:nth-child(2n){overflow:hidden}.project-card:not(.portrait-media) .project-body,.project-card:not(.portrait-media):nth-child(2n) .project-body,.project-card.portrait-media .project-body,.project-card.portrait-media:nth-child(2n) .project-body{grid-template-columns:1fr;gap:1.8rem}.project-card:not(.portrait-media) .project-info,.project-card.portrait-media .project-info,.project-card:nth-child(2n) .project-info{order:2}.project-card:not(.portrait-media) .project-image-wrapper,.project-card.portrait-media .project-image-wrapper,.project-card:nth-child(2n) .project-image-wrapper{order:1}.project-card:not(.portrait-media) .project-image-wrapper,.project-card:not(.portrait-media).dual-media .project-image-wrapper{aspect-ratio:16/10.4}.project-card.portrait-media .project-image-wrapper{aspect-ratio:9.2/16;width:min(100%,384px)}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{width:84%;left:50%}.portrait-secondary-panel{opacity:.38;width:36%;display:block}}@media (width<=768px){body{line-height:1.62}.nav-content{padding:.78rem 1rem}.logo{font-size:1.28rem}.lang-toggle{min-width:58px;padding:.42rem .78rem;font-size:.78rem}.section{padding:64px .9rem 28px}.hero-section{padding-top:76px;padding-bottom:34px}.section-header{margin-bottom:1.35rem}.section-header h2{letter-spacing:2px;font-size:.74rem}.section-header .section-title{font-size:2rem;line-height:1.18}.next-btn,.scroll-indicator{display:none}.hero-content{padding:0}.avatar-wrapper{width:122px;height:122px;margin-bottom:1.1rem}.subtitle{letter-spacing:.4px;text-transform:none;font-size:.9rem;line-height:1.45}.greeting{margin-bottom:1.4rem;font-size:2.26rem;line-height:1.12}html[lang=zh] .greeting{letter-spacing:1px}.contact-badges{gap:.6rem}.badge{overflow-wrap:anywhere;border-radius:14px;justify-content:center;width:100%;min-height:42px;padding:.62rem .85rem;font-size:.82rem}.hero-metrics{grid-template-columns:1fr;margin-top:1rem}.metric-card{border-radius:14px;min-height:68px;padding:.78rem .9rem}.about-card,.project-card,.awards-container{border-radius:20px;padding:1.25rem}.about-summary{border-radius:0 14px 14px 0;padding:.95rem 1rem}.about-summary p,.project-desc,.project-details li,.edu-item .value{font-size:.94rem}.edu-grid,.strength-grid{gap:1rem}.projects-grid{gap:1.55rem}.project-header{gap:.85rem;margin-bottom:1.25rem;padding-bottom:1rem}.project-header h3{font-size:1.28rem;line-height:1.28}.project-meta{border-radius:14px;flex-wrap:wrap;justify-content:flex-start;gap:.45rem .65rem;width:100%;padding:.5rem .72rem;font-size:.78rem;line-height:1.35}.project-info{gap:.92rem}.tech-stack{gap:.38rem}.tech-tag{border-radius:7px;padding:.26rem .56rem;font-size:.72rem}.project-impact{grid-template-columns:1fr;gap:.55rem}.impact-item{border-radius:12px;min-height:58px;padding:.7rem .78rem}.project-details li{margin-bottom:.58rem;padding-left:1.05rem;line-height:1.58}.project-card:not(.portrait-media) .project-image-wrapper,.project-card:not(.portrait-media).dual-media .project-image-wrapper{aspect-ratio:16/10.8;width:100%;padding:0}.project-card:not(.portrait-media) .carousel-container,.project-card:not(.portrait-media).dual-media .carousel-container,.project-card:not(.portrait-media).dual-media:nth-child(2n) .carousel-container{border-radius:16px;inset:0;transform:none}.project-card:not(.portrait-media) .image-backdrop{border-radius:16px;inset:10px}.project-card:not(.portrait-media) .carousel-slide{padding:8px}.project-card:not(.portrait-media) .carousel-slide img{border-radius:9px}.project-card.portrait-media .project-image-wrapper{aspect-ratio:9.15/16;width:min(100%,312px)}.project-card.portrait-media .media-glow{filter:blur(28px);inset:4% -12%}.project-card.portrait-media .image-backdrop{border-radius:24px;inset:3.5% 6%}.portrait-secondary-panel{display:none}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-radius:23px;width:84%;top:3.5%;bottom:3.5%;left:50%}.project-card.portrait-media .carousel-slide{padding:4px}.project-card.portrait-media .carousel-slide img{border-radius:19px}.carousel-ctrl{width:32px;height:32px}.award-groups{gap:.85rem}.award-group{border-radius:16px;padding:1rem}.award-group-header{grid-template-columns:1fr;gap:.7rem}.award-index{border-radius:12px;width:36px;height:36px}.award-heading-row{display:block}.award-count{margin-top:.45rem;display:inline-flex}}@media (width>=520px) and (width<=768px){.project-impact{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=380px){.section{padding-left:.72rem;padding-right:.72rem}.logo{font-size:1.12rem}.greeting{font-size:2.05rem}.section-header .section-title{font-size:1.82rem}.project-card.portrait-media .project-image-wrapper{width:min(100%,286px)}}.project-card.portrait-media .project-image-wrapper{aspect-ratio:10.2/16;isolation:isolate;width:min(100%,430px);overflow:visible}.project-card.portrait-media .image-backdrop{z-index:1;background:linear-gradient(145deg,#ffffffb3,#eff6ff5c),radial-gradient(circle at 50% 16%,#2563eb2e,#0000 42%);border:1px solid #ffffffc2;border-radius:34px;inset:8% 5% 7%;box-shadow:0 34px 90px -52px #0f172ad1,inset 0 1px #ffffffdb}.portrait-stage-ring{z-index:2;pointer-events:none;background:linear-gradient(150deg,#ffffff80,#e2e8f02e) padding-box padding-box,linear-gradient(145deg,#ffffffe6,#2563eb38,#0891b229) border-box;border:1px solid #0000;border-radius:38px;position:absolute;inset:3.5% 17% 4.5%;box-shadow:0 30px 78px -46px #0f172ab8,inset 0 0 0 1px #ffffff73}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{z-index:6;background:#020617;border:8px solid #111827;border-radius:34px;width:60%;inset:4.2% auto 5.2% 50%;transform:translate(-50%);box-shadow:0 34px 86px -42px #0f172ae6,inset 0 0 0 1px #ffffff2e,0 0 0 1px #0f172a6b}.project-card.portrait-media .carousel-container:before{content:"";z-index:18;pointer-events:none;background:#ffffff47;border-radius:999px;width:52px;height:5px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.project-card.portrait-media .carousel-container:after{content:"";z-index:18;pointer-events:none;background:#ffffff52;border-radius:999px;width:38px;height:3px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.project-card.portrait-media .carousel-track{height:100%}.project-card.portrait-media .carousel-slide img{object-fit:cover;object-position:center top;width:100%;height:100%;box-shadow:none;background:#fff;border-radius:24px}.portrait-orbit-panel,.portrait-secondary-panel{z-index:4;aspect-ratio:9/16;filter:saturate(.9)contrast(.98);pointer-events:none;background:#ffffffb3;border:1px solid #ffffffbd;border-radius:24px;width:33%;position:absolute;top:16%;overflow:hidden;box-shadow:0 26px 64px -42px #0f172ab8,inset 0 1px #ffffffc7}.portrait-orbit-panel.left{opacity:.58;left:0;transform:translate(4%)translateY(6%)rotate(-5deg)scale(.92)}.project-card.portrait-media:nth-child(2n) .portrait-orbit-panel.left{left:auto;right:0;transform:translate(-4%)translateY(6%)rotate(5deg)scale(.92)}.portrait-secondary-panel{opacity:.7;right:0;transform:translate(-2%)translateY(-2%)rotate(4deg)scale(.98)}.project-card.portrait-media:nth-child(2n) .portrait-secondary-panel{left:0;right:auto;transform:translate(2%)translateY(-2%)rotate(-4deg)scale(.98)}.portrait-orbit-panel img,.portrait-secondary-panel img{object-fit:cover;object-position:center top;border-radius:22px;width:100%;height:100%;padding:4px;display:block}.project-card.portrait-media .project-image-wrapper:hover .portrait-orbit-panel.left{opacity:.66;transform:translate(0)translateY(4%)rotate(-6deg)scale(.94)}.project-card.portrait-media:nth-child(2n) .project-image-wrapper:hover .portrait-orbit-panel.left{transform:translate(0)translateY(4%)rotate(6deg)scale(.94)}.project-card.portrait-media .project-image-wrapper:hover .portrait-secondary-panel{opacity:.78;transform:translate(1%)translateY(-5%)rotate(5deg)scale(1)}.project-card.portrait-media:nth-child(2n) .project-image-wrapper:hover .portrait-secondary-panel{transform:translate(-1%)translateY(-5%)rotate(-5deg)scale(1)}.portrait-stage-base{z-index:3;filter:blur(2px);pointer-events:none;background:radial-gradient(#0f172a3d,#0000 70%);border-radius:999px;height:18px;position:absolute;bottom:1.5%;left:15%;right:15%}.project-card.portrait-media .carousel-indicators{-webkit-backdrop-filter:blur(12px);background:#0f172a3d;border:1px solid #ffffff2e;border-radius:999px;padding:4px 7px;bottom:20px}.project-card.portrait-media .carousel-indicators .dot{background:#ffffff7a}.project-card.portrait-media .carousel-indicators .dot.active{background:#fff}.project-card.portrait-media .carousel-ctrl{color:#0f172a;background:#ffffffc7;border-color:#ffffffb3;width:34px;height:34px}@media (width<=992px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:10.2/16;width:min(100%,400px)}.portrait-orbit-panel,.portrait-secondary-panel{width:31%}}@media (width<=768px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:9.7/16;width:min(100%,300px)}.project-card.portrait-media .image-backdrop{inset:8% 7% 7%}.portrait-stage-ring{inset:3.8% 15% 4.8%}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-width:6px;border-radius:29px;width:66%;top:4.6%;bottom:5.8%}.project-card.portrait-media .carousel-slide img{border-radius:21px}.portrait-orbit-panel,.portrait-secondary-panel{opacity:.42;border-radius:18px;width:29%;display:block;top:17%}.portrait-orbit-panel img,.portrait-secondary-panel img{border-radius:16px;padding:3px}.project-card.portrait-media .carousel-indicators{bottom:16px}}@media (width<=380px){.project-card.portrait-media .project-image-wrapper{width:min(100%,276px)}}.project-card.portrait-media .media-glow{opacity:.66;filter:blur(38px);background:radial-gradient(circle at 48% 18%,#2563eb33,#0000 36%),radial-gradient(circle at 58% 78%,#0891b22b,#0000 38%),radial-gradient(circle at 26% 62%,#d9770614,#0000 32%);inset:4% -10% 0}.project-card.portrait-media .image-backdrop{background:linear-gradient(145deg,#ffffffbd,#eff6ff52),radial-gradient(circle at 48% 18%,#2563eb1f,#0000 44%);border:1px solid #ffffffc2;border-radius:30px;inset:7% 4% 6%;box-shadow:0 30px 86px -52px #0f172ab3,inset 0 1px #ffffffe0}.portrait-stage-ring{background:linear-gradient(145deg,#ffffff9e,#e2e8f029) padding-box padding-box,linear-gradient(145deg,#ffffffe0,#2563eb29,#0891b21f) border-box;border:1px solid #0000;border-radius:30px;inset:5% 17% 6%;box-shadow:0 28px 72px -48px #0f172a9e,inset 0 0 0 1px #ffffff70}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{background:linear-gradient(145deg,#ffffffe0,#f8fafc9e);border:1px solid #ffffffc2;border-radius:28px;width:62%;top:5%;bottom:6%;left:50%;transform:translate(-50%);box-shadow:0 30px 82px -42px #0f172ac7,0 0 0 1px #0f172a0a,inset 0 1px #fffffff5}.project-card.portrait-media .carousel-container:before,.project-card.portrait-media .carousel-container:after{display:none}.project-card.portrait-media .carousel-slide{background:0 0;padding:7px}.project-card.portrait-media .carousel-slide img{object-fit:cover;object-position:center top;background:#fff;border-radius:22px;box-shadow:0 16px 34px -28px #0f172a94,0 0 0 1px #0f172a0a}.project-card.portrait-media .project-image-wrapper:hover .carousel-container,.project-card.portrait-media:nth-child(2n) .project-image-wrapper:hover .carousel-container{transform:translate(-50%)translateY(-6px)}.portrait-orbit-panel,.portrait-secondary-panel{background:#ffffff9e;border:1px solid #ffffffb3;border-radius:20px;width:29%;top:18%;box-shadow:0 24px 58px -42px #0f172aa8,inset 0 1px #ffffffc7}.portrait-orbit-panel.left{opacity:.48;transform:translate(10%)translateY(7%)rotate(-4deg)scale(.88)}.portrait-secondary-panel{opacity:.58;transform:translate(-8%)translateY(-2%)rotate(3deg)scale(.94)}.portrait-orbit-panel img,.portrait-secondary-panel img{border-radius:18px;padding:3px}.portrait-stage-base{opacity:.72;height:14px;bottom:3%;left:22%;right:22%}.project-card.portrait-media .carousel-indicators{background:#ffffff9e;border:1px solid #0f172a0f;bottom:18px}.project-card.portrait-media .carousel-indicators .dot{box-shadow:none;background:#0f172a38}.project-card.portrait-media .carousel-indicators .dot.active{background:var(--accent-blue);box-shadow:none}.project-card.portrait-media .carousel-ctrl{color:var(--primary-blue);background:#ffffffc2;border-color:#0f172a0f}@media (width<=992px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:13/16;width:min(100%,460px)}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{width:62%}}@media (width<=768px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:12/16;width:min(100%,320px)}.portrait-stage-ring{inset:5% 14% 6%}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-radius:24px;width:67%;top:5.4%;bottom:6.4%}.project-card.portrait-media .carousel-slide{padding:5px}.project-card.portrait-media .carousel-slide img{border-radius:19px}.portrait-orbit-panel,.portrait-secondary-panel{opacity:.34;width:27%}}@media (width<=380px){.project-card.portrait-media .project-image-wrapper{width:min(100%,292px)}}.project-card.portrait-media .project-image-wrapper{aspect-ratio:3/4;width:min(100%,480px)}.project-card.portrait-media .image-backdrop{border-radius:30px;inset:6% 7%}.portrait-stage-ring{border-radius:28px;inset:5% 21%}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{background:#ffffffb8;border:1px solid #fffc;border-radius:27px;width:55.4%;top:5%;bottom:5%;left:50%;box-shadow:0 28px 78px -42px #0f172ac2,0 0 0 1px #0f172a09,inset 0 1px #fffffff0}.project-card.portrait-media .carousel-slide{padding:6px}.project-card.portrait-media .carousel-slide img{object-fit:cover;object-position:center top;border-radius:21px}.portrait-orbit-panel,.portrait-secondary-panel{aspect-ratio:550/1190;border-radius:18px;width:25.5%}.portrait-orbit-panel.left{transform:translate(16%)translateY(8%)rotate(-3deg)scale(.9)}.project-card.portrait-media:nth-child(2n) .portrait-orbit-panel.left{transform:translate(-16%)translateY(8%)rotate(3deg)scale(.9)}.portrait-secondary-panel{transform:translate(-14%)translateY(-1%)rotate(3deg)scale(.96)}.project-card.portrait-media:nth-child(2n) .portrait-secondary-panel{transform:translate(14%)translateY(-1%)rotate(-3deg)scale(.96)}.portrait-orbit-panel img,.portrait-secondary-panel img{object-fit:cover;object-position:center top;border-radius:16px}@media (width<=992px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:3/4;width:min(100%,430px)}}@media (width<=768px){.project-card.portrait-media .project-image-wrapper{aspect-ratio:3/4;width:min(100%,310px)}.portrait-stage-ring{border-radius:25px;inset:5% 20%}.project-card.portrait-media .carousel-container,.project-card.portrait-media:nth-child(2n) .carousel-container{border-radius:23px;width:55.2%;top:5.2%;bottom:5.2%}.project-card.portrait-media .carousel-slide{padding:4px}.project-card.portrait-media .carousel-slide img{border-radius:18px}.portrait-orbit-panel,.portrait-secondary-panel{opacity:.3;width:24%}}@media (width<=380px){.project-card.portrait-media .project-image-wrapper{width:min(100%,286px)}}@media (width<=768px){html{scroll-padding-top:78px}.navbar{background:#ffffffdb}.nav-content{flex-wrap:nowrap;gap:.55rem;padding:.72rem .92rem;position:relative}.logo{min-width:0;font-size:1.24rem}.lang-toggle{order:0;min-width:54px;margin-left:auto;padding:.42rem .68rem}.mobile-menu-toggle{width:38px;height:38px;color:var(--primary-blue);cursor:pointer;background:#ffffffdb;border:1px solid #0f172a1a;border-radius:50%;flex:0 0 38px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 8px 22px -18px #0f172a6b}.mobile-menu-toggle svg{width:18px;height:18px}.nav-links{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(18px);background:#fffffff0;border:1px solid #0f172a14;border-radius:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:auto;max-height:0;padding:0;transition:max-height .28s,opacity .22s,padding .22s;display:grid;position:absolute;top:calc(100% + 8px);left:.92rem;right:.92rem;overflow:hidden;box-shadow:0 22px 60px -36px #0f172a73}.nav-links.open{opacity:1;pointer-events:auto;max-height:270px;padding:.72rem}.mobile-nav-title{color:var(--text-muted);grid-column:1/-1;padding:.15rem .25rem .25rem;font-size:.72rem;font-weight:900;line-height:1;display:block}.nav-links a{background:#f8fafccc;border-radius:13px;justify-content:center;align-items:center;width:100%;min-height:38px;margin-left:0;padding:.55rem .64rem;font-size:.8rem;line-height:1;display:inline-flex}.nav-links a:after{display:none}.nav-links a.active{color:#fff;background:var(--primary-blue)}.section{padding-top:82px}.hero-section{min-height:100svh;padding-top:82px}.avatar-wrapper{margin-top:0}}@media (width<=380px){.nav-links{grid-template-columns:1fr}.nav-links.open{max-height:300px}}@media (width<=768px){.mobile-project-toc{z-index:80;-webkit-backdrop-filter:blur(16px);scrollbar-width:none;-webkit-overflow-scrolling:touch;background:#ffffffe6;border:1px solid #0f172a12;border-radius:16px;align-items:center;gap:.5rem;margin:-.45rem 0 1.1rem;padding:.58rem;display:flex;position:sticky;top:66px;overflow-x:auto;box-shadow:0 18px 44px -34px #0f172a6b}.mobile-project-toc::-webkit-scrollbar{display:none}.toc-label{z-index:2;color:var(--accent-blue);background:#eff6fff5;border:1px solid #2563eb1a;border-radius:11px;flex:none;padding:.42rem .56rem;font-size:.72rem;font-weight:900;line-height:1;position:sticky;left:0}.toc-item{max-width:190px;min-height:34px;color:var(--text-main);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#f8fafcc7;border:1px solid #0f172a0f;border-radius:12px;flex:none;align-items:center;gap:.42rem;padding:.42rem .72rem;font-size:.76rem;font-weight:800;line-height:1.15;display:inline-flex;overflow:hidden}.toc-item span{color:var(--text-soft);font-size:.68rem;font-weight:900}.toc-item.active{color:#fff;background:linear-gradient(135deg, var(--primary-blue), var(--accent-blue));border-color:#2563eb2e;box-shadow:0 14px 28px -22px #2563ebc2}.toc-item.active span{color:#ffffffc7}}.project-content-label{color:var(--primary-blue);letter-spacing:0;text-transform:uppercase;align-items:center;gap:.55rem;margin:1.45rem 0 .72rem;font-size:.76rem;font-weight:900;display:flex}.project-content-label:before{content:"";background:var(--accent-blue);border-radius:3px;width:18px;height:3px;box-shadow:7px 0 #2563eb33}.highlight-label{color:#b45309}.highlight-label:before{background:#f59e0b;box-shadow:7px 0 #f59e0b33}.project-impact .impact-item{border:1px solid #2563eb1f;position:relative;overflow:hidden}.project-impact .impact-item:after{content:"";background:#2563eb;height:3px;position:absolute;inset:auto 0 0}.project-impact .impact-item:nth-child(2):after{background:#0891b2}.project-impact .impact-item:nth-child(3):after{background:#d97706}.project-impact .impact-item:nth-child(2) strong{color:#0e7490}.project-impact .impact-item:nth-child(3) strong{color:#b45309}.project-details li{color:#475569;font-weight:600}.project-details li::marker{color:#f59e0b;font-weight:900}.certificate-category{background:linear-gradient(145deg,#eff6fff0,#ffffffe0);border-color:#47556924}.certificate-category:before{opacity:1;background:linear-gradient(90deg,#64748b,#60a5fa)}.certificate-category h3,.certificate-category .icon-box svg{color:#1e293b}.certificate-category .skill-tag{color:#1e293b;background:#fffffff0;border-color:#47556924;font-weight:900}.certificate-category .skill-logo-wrap{color:#334155;background:#e2e8f0;border-color:#4755691f}.award-group{--award-color:#2563eb;--award-soft:#2563eb1a}.award-group .award-index{color:var(--award-color);background:var(--award-soft);border-color:color-mix(in srgb, var(--award-color) 20%, transparent)}.award-group .award-count,.award-group .award-level{color:var(--award-color);background:var(--award-soft);border-color:color-mix(in srgb, var(--award-color) 16%, transparent);font-weight:900}.award-entry h4{color:#1e293b;font-weight:800}.award-theme-0{--award-color:#3b6ea8;--award-soft:#edf5fd}.award-theme-1{--award-color:#7664a8;--award-soft:#f4f1fb}.award-theme-2{--award-color:#3f7f68;--award-soft:#edf8f3}.award-theme-3{--award-color:#9a6a45;--award-soft:#fbf4ed}.award-group{background:color-mix(in srgb, var(--award-soft) 62%, #fffffff0);border-color:color-mix(in srgb, var(--award-color) 10%, #ffffffe6)}.award-group:before{opacity:.45;background:var(--award-soft)}.award-group .award-index,.award-group .award-count,.award-group .award-level{color:#475569;background:var(--award-soft);border-color:color-mix(in srgb, var(--award-color) 10%, transparent)}.awards-container{border-color:#0f172a12;padding:clamp(1.25rem,3vw,2.5rem)}.award-groups{gap:1rem}.award-group{background:#ffffffd1;border-color:#0f172a13;border-radius:8px;padding:1.5rem;box-shadow:0 18px 44px -38px #0f172a6b}.award-group:hover{border-color:color-mix(in srgb, var(--award-color) 18%, #0f172a14);transform:translateY(-3px);box-shadow:0 24px 54px -38px #0f172a80}.award-group-header{border-bottom:1px solid #0f172a12;gap:.9rem;margin-bottom:1.2rem;padding-bottom:1.1rem}.award-index{border-radius:8px;width:40px;height:40px;position:relative}.award-index svg{width:19px;height:19px}.award-index span{color:#fff;background:var(--award-color);text-align:center;border:2px solid #fff;border-radius:6px;min-width:20px;padding:3px 4px;font-size:.58rem;line-height:1;position:absolute;bottom:-5px;right:-5px}.award-group h3{color:#172033;font-size:1.08rem}.award-group-header p{margin-top:.42rem;font-weight:500}.award-list{gap:0}.award-entry{background:0 0;border:0;border-bottom:1px solid #0f172a11;border-radius:0;grid-template-columns:8px minmax(0,1fr) auto;gap:.85rem;padding:.9rem .35rem;transition:padding .25s,background-color .25s;position:relative}.award-entry:last-child{border-bottom:0}.award-entry:hover{background:color-mix(in srgb, var(--award-soft) 52%, transparent);padding-left:.55rem;padding-right:.55rem}.award-marker{background:var(--award-color);width:6px;height:6px;box-shadow:0 0 0 4px var(--award-soft);border-radius:50%}.award-time{color:#7b8799;margin-bottom:.32rem}.award-entry h4{font-size:.94rem;line-height:1.5}.award-group .award-level{color:#475569;background:#f8fafc;border-color:#0f172a14;border-radius:7px;max-width:132px;padding:.38rem .64rem}.reveal-element.is-visible{will-change:auto}@media (width<=768px){.award-group{border-radius:8px;padding:1.1rem}.award-group-header{grid-template-columns:auto minmax(0,1fr)}.award-heading-row{align-items:flex-start;display:flex}.award-count{margin-top:0}.award-entry{grid-template-columns:7px minmax(0,1fr)}.award-level{grid-column:2;justify-self:start}}.award-theme-0,.award-theme-1,.award-theme-2,.award-theme-3{--award-color:#2563eb;--award-soft:#eff6ff}.awards-container{background:#ffffffb8;border:1px solid #2563eb14;box-shadow:0 24px 64px -46px #0f172a59}.award-group{background:#fffffff0;border:0;border-radius:8px;box-shadow:0 12px 32px -28px #0f172a52}.award-group:before{opacity:1;background:#2563eb;width:auto;height:2px;inset:0 1.5rem auto}.award-group:hover{border-color:#0000;box-shadow:0 20px 42px -30px #2563eb4d}.award-index,.award-group .award-index{color:#2563eb;background:#eff6ff;border:0}.award-index span{background:#2563eb}.award-group h3{color:#0f172a}.award-group-header{border-bottom-color:#e8eef6}.award-count,.award-group .award-count{color:#2563eb;background:0 0;border-color:#bfdbfe}.award-marker{background:#2563eb;box-shadow:0 0 0 4px #eff6ff}.award-entry:hover{background:#f8fbff}.award-entry:hover h4{color:#1d4ed8}.award-group .award-level{color:#1e40af;background:#eff6ff;border-color:#0000}.carousel-track{transform-style:preserve-3d;backface-visibility:hidden;transition:transform .62s cubic-bezier(.22,1,.36,1)}.carousel-slide,.carousel-slide img{backface-visibility:hidden}.carousel-slide img{transition:transform .65s cubic-bezier(.22,1,.36,1);transform:translateZ(0)}.project-image-wrapper:hover .carousel-slide img{transform:translateZ(0)scale(1.018)}.carousel-indicators .dot{transition:width .28s cubic-bezier(.22,1,.36,1),background-color .2s,opacity .2s}@media (width<=768px){.award-group:before{left:1.1rem;right:1.1rem}}.about-card{padding:clamp(1.5rem,4vw,3rem)}.about-spotlight{grid-template-columns:minmax(0,1fr) 230px;align-items:stretch;gap:clamp(1.5rem,4vw,3rem);display:grid}.about-spotlight .about-summary{border-left:3px solid var(--accent-blue);background:0 0;border-radius:0;flex-direction:column;justify-content:center;margin:0;padding:0 0 0 1.5rem;display:flex}.about-spotlight .about-summary:before{display:none}.about-kicker{color:var(--accent-blue);text-transform:uppercase;margin-bottom:.6rem;font-size:.74rem;font-weight:900}.about-spotlight .about-summary h3{max-width:720px;color:var(--primary-blue);font-size:clamp(1.55rem,3vw,2.25rem);font-weight:900;line-height:1.25}.about-spotlight .about-summary p{max-width:760px;color:var(--text-muted);margin-top:1rem;font-size:.98rem;font-weight:500}.rank-proof{color:#fff;background:#172033;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:210px;padding:1.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 54px -32px #0f172ab8}.rank-proof:after{content:"";border:22px solid #60a5fa2e;border-radius:50%;width:108px;height:108px;position:absolute;bottom:-24px;right:-24px}.rank-proof>span{color:#bfdbfe;font-size:.78rem;font-weight:800}.rank-proof strong{z-index:1;font-size:4rem;font-weight:900;line-height:1;position:relative}.rank-proof strong small{color:#93c5fd;font-size:1.15rem}.rank-proof div{z-index:1;color:#172033;background:#fff;border-radius:6px;width:fit-content;padding:.38rem .7rem;font-size:.82rem;font-weight:900;position:relative}.about-card .strength-grid{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);gap:0;margin:2.3rem 0}.about-card .strength-item{border:0;border-right:1px solid var(--line-soft);box-shadow:none;background:0 0;border-radius:0;grid-template-columns:auto minmax(0,1fr);gap:.9rem;padding:1.35rem;display:grid}.about-card .strength-item:last-child{border-right:0}.strength-index{color:#93a3b8;font-size:.72rem;font-weight:900}.about-card .strength-item h4{margin-bottom:.35rem}.about-card .strength-item p{font-weight:500}.about-card .about-divider{display:none}.about-card .edu-info h3{margin-bottom:1.4rem;font-size:1.15rem}.about-card .edu-grid{gap:1rem 2rem}.about-card .edu-item{grid-template-columns:92px minmax(0,1fr);align-items:start;gap:1rem;display:grid}.about-card .edu-item .label{background:0 0;border-radius:0;margin:0;padding:0}.about-card .edu-item .value{font-size:.96rem;font-weight:600}.project-card.phone-media .project-body,.project-card.phone-media:nth-child(2n) .project-body{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:clamp(2rem,4vw,4rem)}.project-card.phone-media .project-info,.project-card.phone-media:nth-child(2n) .project-info{order:1}.phone-showcase{order:2;grid-template-columns:minmax(220px,278px) 78px;justify-content:center;align-items:center;gap:1.1rem;min-width:0;display:grid}.phone-primary{min-width:0}.phone-device{aspect-ratio:550/1190;background:0 0;border:0;border-radius:18px;width:100%;position:relative;overflow:hidden;box-shadow:0 26px 58px -34px #0f172a7a,0 0 0 1px #0f172a0a}.phone-track{width:100%;height:100%;transition:transform .58s cubic-bezier(.22,1,.36,1);display:flex}.phone-slide{background:#f8fafc;flex:0 0 100%;min-width:0;height:100%}.phone-slide img{object-fit:contain;object-position:center top;border-radius:18px;width:100%;height:100%;display:block}.phone-control{z-index:5;color:#172033;cursor:pointer;opacity:0;background:#ffffffe6;border:1px solid #0f172a14;border-radius:50%;place-items:center;width:34px;height:34px;transition:opacity .25s,transform .25s;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 10px 24px -14px #0f172aa6}.phone-control svg{width:16px}.phone-control.prev{left:10px}.phone-control.next{right:10px}.phone-device:hover .phone-control,.phone-control:focus-visible{opacity:1}.phone-pagination{justify-content:center;align-items:baseline;gap:.25rem;margin-top:.7rem;display:flex}.phone-pagination strong{color:var(--primary-blue);font-size:1rem;font-weight:900}.phone-pagination span{color:var(--text-soft);font-size:.75rem;font-weight:800}.phone-thumbnails{scrollbar-width:thin;flex-direction:column;gap:.7rem;max-height:530px;padding:4px;display:flex;overflow-y:auto}.phone-thumbnail{aspect-ratio:550/1190;cursor:pointer;opacity:.58;background:#fff;border:1px solid #0f172a1c;border-radius:8px;flex:none;width:66px;padding:3px;transition:opacity .25s,border-color .25s,transform .25s;position:relative;overflow:hidden}.phone-thumbnail:hover,.phone-thumbnail.active{opacity:1;border-color:var(--accent-blue);transform:translate(-3px)}.phone-thumbnail.active{box-shadow:0 0 0 2px #2563eb1f}.phone-thumbnail img{object-fit:cover;object-position:top;border-radius:5px;width:100%;height:100%;display:block}.phone-thumbnail span{color:#fff;background:#0f172ac7;border-radius:4px;min-width:20px;padding:2px 4px;font-size:.56rem;font-weight:900;position:absolute;bottom:3px;right:3px}.skill-focus{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-bottom:2rem;padding:1.5rem 0}.skill-focus-heading,.featured-awards-heading{align-items:baseline;gap:.8rem;margin-bottom:1.3rem;display:flex}.skill-focus-heading>span,.featured-awards-heading>span{color:var(--accent-blue);font-size:.68rem;font-weight:900}.skill-focus-heading h3,.featured-awards-heading h3{color:var(--primary-blue);font-size:1.35rem;font-weight:900}.skill-focus-grid{background:var(--line-soft);border:1px solid var(--line-soft);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.skill-focus-item{background:#ffffffdb;min-width:0;padding:1.35rem}.focus-index{color:#93a3b8;font-size:.68rem;font-weight:900}.skill-focus-item h4{color:var(--primary-blue);margin:.55rem 0 .5rem;font-size:1rem;font-weight:900}.skill-focus-item p{min-height:66px;color:var(--text-muted);font-size:.84rem;font-weight:500;line-height:1.55}.focus-tech{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.focus-tech span{color:#1e40af;background:#eff6ff;border-radius:4px;padding:.25rem .48rem;font-size:.68rem;font-weight:800}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.skill-category{border-radius:8px}.certificate-category .skill-tag.featured-skill{color:#78350f;background:#fef3c7;border-color:#f59e0b;font-weight:900;position:relative;box-shadow:0 10px 24px -18px #d97706ad}.certificate-category .skill-tag.featured-skill:after{content:"";background:#d97706;border:2px solid #fffbeb;border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.certificate-category .skill-tag.featured-skill .skill-logo-wrap{color:#422006;background:#fbbf24;border-color:#f59e0b}.certificate-category .skill-tag.featured-skill>span:last-child{color:#78350f}.featured-awards{margin-bottom:2rem}.featured-awards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.featured-award{--featured-color:#2563eb;--featured-soft:#eff6ff;background:var(--featured-soft);border:1px solid color-mix(in srgb, var(--featured-color) 16%, transparent);min-width:0;min-height:250px;box-shadow:0 20px 48px -38px color-mix(in srgb, var(--featured-color) 65%, transparent);border-radius:8px;flex-direction:column;padding:1.5rem;display:flex}.featured-award:nth-child(2){--featured-color:#0e7490;--featured-soft:#ecfeff}.featured-award:nth-child(3){--featured-color:#b45309;--featured-soft:#fffbeb}.featured-award:before{content:"";background:var(--featured-color);border-radius:3px;width:42px;height:3px;margin-bottom:1rem}.featured-award-topline{color:color-mix(in srgb, var(--featured-color) 62%, #64748b);justify-content:space-between;align-items:center;font-size:.72rem;font-weight:900;display:flex}.featured-award-topline svg{width:21px;color:var(--featured-color)}.featured-award>p{color:var(--featured-color);margin-top:1.2rem;font-size:.76rem;font-weight:800}.featured-award h4{color:var(--primary-blue);margin:.55rem 0 1.5rem;font-size:1.08rem;font-weight:900;line-height:1.5}.featured-award-meta{justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;display:flex}.featured-award-meta strong{color:var(--featured-color);background:#fff;border-radius:5px;padding:.35rem .6rem;font-size:.75rem;font-weight:900}.featured-award-meta span{color:#64748b;font-size:.78rem;font-weight:800}.awards-container{box-shadow:none;background:0 0;border:0;padding:0}.more-awards-heading{color:var(--primary-blue);justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:900;display:flex}.more-awards-heading span:last-child{color:var(--text-muted);font-size:.78rem}.award-groups{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=992px){.project-card.phone-media .project-body,.project-card.phone-media:nth-child(2n) .project-body{grid-template-columns:1fr}.project-card.phone-media .project-info,.project-card.phone-media:nth-child(2n) .project-info{order:1}.phone-showcase{order:2;grid-template-columns:minmax(220px,278px) 78px;margin-top:1rem}.skill-focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-focus-item p{min-height:44px}.skills-grid,.award-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.about-spotlight{grid-template-columns:1fr}.about-spotlight .about-summary{padding-left:1rem}.rank-proof{min-height:154px}.rank-proof strong{font-size:3.2rem}.about-card .strength-grid{grid-template-columns:1fr}.about-card .strength-item,.about-card .strength-item:last-child{border-right:0;border-bottom:1px solid var(--line-soft)}.about-card .strength-item:last-child{border-bottom:0}.about-card .edu-grid{grid-template-columns:1fr}.about-card .edu-item{grid-template-columns:74px minmax(0,1fr)}.project-card.phone-media,.project-card.phone-media:nth-child(2n){padding:1.25rem}.phone-showcase{grid-template-columns:1fr;gap:.8rem;width:100%}.phone-primary{width:min(100%,244px);margin:0 auto}.phone-control{opacity:1}.phone-thumbnails{flex-direction:row;justify-content:flex-start;width:100%;max-height:none;padding:4px 2px 8px;overflow:auto hidden}.phone-thumbnail{width:58px}.phone-thumbnail:hover,.phone-thumbnail.active{transform:translateY(-2px)}.skill-focus-grid,.skills-grid,.featured-awards-grid,.award-groups{grid-template-columns:1fr}.skill-focus-item p{min-height:0}.featured-award{min-height:220px}}@media (width<=380px){.about-card .edu-item{grid-template-columns:1fr;gap:.4rem}.phone-primary{width:min(100%,226px)}}@media (width<=768px){.project-header-actions{justify-content:flex-start;width:100%}.project-visit-link{min-height:36px}.tech-dot-field{opacity:.2;background-size:18px 18px;width:144px;height:128px}.dot-field-left{top:13%;left:-28px}.dot-field-right,.trace-right,.node-two,.node-three,.node-four{display:none}.trace-left{opacity:.18;top:48%;left:-112px}.node-one{opacity:.5;top:29%;right:18px}}.el-icon[data-v-81efd8a5]{vertical-align:-2px;width:15px;height:15px;margin-right:6px}.el-icon-sm[data-v-81efd8a5]{vertical-align:-2px;width:14px;height:14px;margin-right:6px}.el-icon-md[data-v-81efd8a5]{width:20px;height:20px;color:var(--accent-blue)}.header-icon[data-v-81efd8a5]{vertical-align:-3px;width:18px;height:18px;margin-right:8px}
