:root{--bg-dark:#0a0a0f;--bg-darker:#050508;--bg-panel:#14141e99;--bg-card:#1e1e2d66;--text-main:#f8f9fa;--text-muted:#94a3b8;--accent-primary:#3b82f6;--accent-secondary:#8b5cf6;--accent-gradient:linear-gradient(135deg, #3b82f6, #8b5cf6);--border-color:#ffffff14;--glass-shadow:0 8px 32px 0 #00000080;--font-main:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-main);background-image:radial-gradient(circle at 15% 20%,#3b82f61a 0%,#0000 40%),radial-gradient(circle at 85% 30%,#8b5cf61a 0%,#0000 40%);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:all .3s}ul{list-style:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit;transition:all .3s}.route-loading{place-items:center;min-height:min(420px,55vh);display:grid}.route-loading span{border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:999px;width:28px;height:28px;animation:.8s linear infinite route-loading-spin}@keyframes route-loading-spin{to{transform:rotate(360deg)}}.is-exporting-pdf [data-pdf-exclude=true]{display:none!important}.is-exporting-pdf,.is-exporting-pdf *{transition:none!important;animation:none!important}.is-exporting-pdf *{box-shadow:none!important;filter:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.is-exporting-pdf .project-card-full,.is-exporting-pdf .skill-card-detailed,.is-exporting-pdf .model-card,.is-exporting-pdf .step{break-inside:avoid;page-break-inside:avoid}.is-exporting-pdf .image-overlay{display:none!important}.pdf-export-source{background:var(--bg-dark);width:1280px;min-height:100vh;color:var(--text-main);pointer-events:none;position:absolute;top:0;left:-100000px;overflow:visible}.pdf-export-section{background:var(--bg-dark);width:1280px;max-width:1280px}.pdf-export-source .projects-page,.pdf-export-source .skills-page,.pdf-export-source .models-page{width:1280px;max-width:1280px;margin:0;padding-top:2rem}.pdf-export-source .projects-filter-bar,.pdf-export-source .skills-sidebar,.pdf-export-source .skills-grid-header{display:none!important}.pdf-export-source .skills-content{display:block}.pdf-export-source .skills-main{width:100%}.pdf-export-source .projects-grid-large,.pdf-export-source .models-grid{gap:1rem}.pdf-export-source .project-card-image{height:160px}.pdf-export-source .project-card-content,.pdf-export-source .skill-card-detailed,.pdf-export-source .model-card{padding:1rem}.pdf-export-source .project-card-full,.pdf-export-source .skill-card-detailed,.pdf-export-source .model-card{border-radius:12px}.pdf-export-source .project-card-top,.pdf-export-source .model-card-top,.pdf-export-source .model-desc,.pdf-export-source .model-stats-row,.pdf-export-source .model-tags{margin-bottom:.75rem}.pdf-export-source .project-card-content p,.pdf-export-source .model-desc,.pdf-export-source .skill-card-detailed p{font-size:.82rem!important;line-height:1.55!important}.pdf-export-source .skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:2rem}.pdf-export-source .models-workflow,.pdf-export-source .models-grid{margin-bottom:2rem}.pdf-progress-backdrop{z-index:3000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050508ad;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.pdf-progress-modal{border:1px solid var(--border-color);color:#f8f9fa;background:#14141ef5;border-radius:8px;width:min(440px,100%);padding:24px;box-shadow:0 24px 70px #00000073}.pdf-progress-heading{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.pdf-progress-icon{width:46px;height:46px;color:var(--accent-primary);background:#3b82f61f;border-radius:8px;flex:0 0 46px;justify-content:center;align-items:center;display:flex;position:relative}.pdf-progress-spinner{color:var(--accent-secondary);background:#0a0a0f;border-radius:999px;padding:2px;animation:.95s linear infinite pdfSpin;position:absolute;bottom:-4px;right:-4px}.pdf-progress-heading h3{color:#f8f9fa;font-size:1.1rem;font-family:var(--font-heading);margin-bottom:6px;font-weight:800}.pdf-progress-heading p{color:var(--text-muted);font-size:.88rem;line-height:1.6}.pdf-progress-track{background:#ffffff14;border-radius:999px;height:8px;overflow:hidden}.pdf-progress-fill{border-radius:inherit;background:var(--accent-gradient);height:100%;transition:width .25s}.pdf-progress-meta{color:var(--text-muted);justify-content:space-between;gap:16px;margin-top:12px;font-size:.78rem;line-height:1.5;display:flex}.pdf-progress-meta span:first-child{color:#f8f9fa;font-weight:800}@keyframes pdfSpin{to{transform:rotate(360deg)}}.resume-email-backdrop{z-index:2900;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050508a3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.resume-email-dialog{border:1px solid var(--border-color);color:#f8f9fa;background:#14141ef7;border-radius:8px;width:min(460px,100%);padding:24px;position:relative;box-shadow:0 24px 70px #00000073}.resume-email-close{border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:#ffffff0a;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px}.resume-email-close:hover{color:#f8f9fa;border-color:var(--accent-primary)}.demo-notice-backdrop{z-index:2800;background:0 0;justify-content:center;align-items:flex-start;padding:clamp(88px,18vh,156px) 16px 16px;display:flex;position:fixed;inset:0;overflow:hidden}.demo-notice-dialog{color:#f8f9fa;background:#111827;border:1px solid #ffffff1f;border-radius:12px;width:min(360px,100vw - 32px);max-height:calc(100dvh - 32px);padding:20px;position:relative;box-shadow:0 18px 50px #02061747}.demo-notice-close{border:1px solid var(--border-color);color:#cbd5e1;cursor:pointer;background:#ffffff14;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:12px;right:12px}.demo-notice-close:hover{color:#f8f9fa;border-color:var(--accent-primary)}.demo-notice-dialog h3{color:#f8f9fa;font-family:var(--font-heading);margin:0 42px 12px 0;font-size:1.12rem;line-height:1.3}.demo-notice-copy{color:#e5e7eb;margin:0;font-size:1.02rem;font-weight:700;line-height:1.6}.demo-notice-actions{justify-content:flex-end;margin-top:18px;display:flex}.demo-notice-confirm{border:1px solid var(--accent-primary);background:var(--accent-primary);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-width:92px;padding:10px 16px;font-weight:600;display:inline-flex}.demo-notice-confirm:hover{transform:translateY(-1px)}[data-theme=light] .demo-notice-dialog{color:#101828;background:#fff;border-color:#0f172a1f;box-shadow:0 18px 45px #0f172a2e}[data-theme=light] .demo-notice-close{color:#475467;background:#0f172a0d}[data-theme=light] .demo-notice-close:hover{color:#101828;background:#0f172a14}[data-theme=light] .demo-notice-dialog h3,[data-theme=light] .demo-notice-copy{color:#101828}@media (width<=768px){.demo-notice-backdrop{align-items:center;padding:16px}.demo-notice-dialog{width:min(320px,100vw - 32px);padding:18px}.demo-notice-actions{justify-content:stretch}.demo-notice-confirm{width:100%}}.resume-email-heading{align-items:flex-start;gap:16px;margin-bottom:22px;padding-right:36px;display:flex}.resume-email-icon{width:46px;height:46px;color:var(--accent-primary);background:#3b82f61f;border-radius:8px;flex:0 0 46px;justify-content:center;align-items:center;display:flex}.resume-email-heading h3{color:#f8f9fa;font-family:var(--font-heading);margin-bottom:6px;font-size:1.12rem;font-weight:800}.resume-email-heading p{color:var(--text-muted);font-size:.88rem;line-height:1.6}.resume-email-field{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.resume-email-field span{color:var(--text-muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.resume-email-field input{border:1px solid var(--border-color);width:100%;height:46px;color:var(--text-main);font:inherit;background:#ffffff0a;border-radius:8px;outline:none;padding:0 14px}.resume-email-field input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f624}.resume-email-feedback{margin-bottom:14px;font-size:.84rem;line-height:1.5}.resume-email-feedback.error{color:#ef4444}.resume-email-feedback.success{color:#10b981}.resume-email-actions{justify-content:flex-end;gap:10px;display:flex}.resume-email-cancel,.resume-email-submit{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-weight:800;display:inline-flex}.resume-email-cancel{border:1px solid var(--border-color);color:#f8f9fa;background:#ffffff0a}.resume-email-submit{border:1px solid var(--accent-primary);background:var(--accent-primary);color:#fff}.resume-email-close:disabled,.resume-email-cancel:disabled,.resume-email-submit:disabled,.resume-email-field input:disabled{cursor:progress;opacity:.72}@media (width<=520px){.resume-email-backdrop{align-items:flex-end;padding:12px}.resume-email-dialog{padding:22px 18px 18px}.resume-email-actions{flex-direction:column-reverse}.resume-email-cancel,.resume-email-submit{width:100%}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.6s ease-out forwards fadeIn}.navbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:1000;background:#0a0a0fcc;height:72px;position:fixed;top:0;left:0;right:0}.nav-container{justify-content:space-between;align-items:center;max-width:1440px;height:100%;margin:0 auto;padding:0 2rem;display:flex}.logo{font-size:1.4rem;font-weight:800;font-family:var(--font-heading);letter-spacing:1px;align-items:center;gap:12px;display:flex}.logo-icon{justify-content:center;align-items:center;width:36px;height:36px;display:flex}.logo-icon-img{object-fit:contain;border-radius:8px;width:100%;height:100%}.nav-menu{gap:2.5rem;display:flex}.nav-link{color:var(--text-muted);padding:4px 0;font-size:.95rem;font-weight:500;position:relative}.nav-link:hover,.nav-link.active{color:var(--text-main)}.nav-link.active:after{content:"";background:var(--accent-primary);border-radius:2px;width:100%;height:2px;position:absolute;bottom:-4px;left:0}.nav-actions{align-items:center;gap:.9rem;display:flex}.theme-toggle{color:var(--text-muted);background:#ffffff0d;border-radius:50%;padding:8px}.theme-toggle:hover{color:var(--text-main);background:#ffffff1a}.language-switcher{align-items:center;display:inline-flex}.language-switcher select{border:1px solid var(--border-color);min-width:112px;height:40px;color:var(--text-main);cursor:pointer;background:#ffffff0d;border-radius:999px;padding:0 30px 0 12px;font-size:.82rem;font-weight:700}.language-switcher select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.contact-btn{background:var(--accent-primary);color:#fff;border-radius:20px;padding:10px 24px;font-size:.9rem;font-weight:600;box-shadow:0 4px 15px #3b82f64d}.contact-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.mobile-menu-btn{color:var(--text-main);cursor:pointer;background:0 0;border:none;padding:4px;display:none}.main-layout{max-width:1440px;min-height:calc(100vh - 72px);margin:0 auto;padding-top:100px}.home-container{gap:2rem;padding:0 2rem 4rem;display:flex}.left-column{flex-direction:column;flex:1.6;gap:3rem;display:flex}.right-column{flex:1}.hero{justify-content:space-between;align-items:center;gap:2rem;padding:4rem 0;display:flex;position:relative}.hero-content{flex:1}.hero-graphic-container{flex:1;justify-content:center;align-items:center;display:flex}.hero-graphic{filter:drop-shadow(0 0 30px #3b82f633);width:100%;max-width:600px;height:auto;animation:6s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.hero-tag{color:var(--accent-primary);background:#3b82f61a;border-radius:20px;align-items:center;gap:8px;height:30px;margin-bottom:1.5rem;padding:6px 16px;font-size:.85rem;font-weight:600;display:inline-flex;overflow:hidden}.tag-cycle{animation:.4s cubic-bezier(.16,1,.3,1) tagSlideIn;display:inline-block}@keyframes tagSlideIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.terminal-window{background:#0d1117;border:1px solid #00ff8826;border-radius:12px;width:100%;max-width:680px;margin-bottom:2rem;overflow:hidden;box-shadow:0 0 30px #00ff880f,0 0 60px #00ff8808,inset 0 1px #ffffff08}.terminal-header{background:#ffffff0a;border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:10px 16px;display:flex}.terminal-dot{border-radius:50%;width:12px;height:12px}.terminal-dot.red{background:#ff5f57}.terminal-dot.yellow{background:#febc2e}.terminal-dot.green{background:#28c840}.terminal-title{text-align:center;color:#ffffff59;flex:1;margin-right:44px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.75rem}.terminal-body{scroll-behavior:smooth;max-height:320px;padding:16px 20px;overflow-y:auto}.terminal-body::-webkit-scrollbar{width:4px}.terminal-body::-webkit-scrollbar-track{background:0 0}.terminal-body::-webkit-scrollbar-thumb{background:#0f83;border-radius:2px}.terminal-line{white-space:pre-wrap;word-break:break-all;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.82rem;line-height:1.7}.terminal-line.cmd{margin-top:4px}.t-prompt{color:#0f8;font-weight:700}.t-cmd-text{color:#e6edf3;font-weight:600}.t-prefix{color:#00ff8880}.t-output-text{color:#c8dcf0d9}.terminal-cursor{vertical-align:text-bottom;background:#0f8;width:8px;height:16px;margin-left:1px;animation:.7s step-end infinite cursorBlock;display:inline-block}@keyframes cursorBlock{0%,to{opacity:1}50%{opacity:0}}.terminal-body:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00ff8804 2px 4px);position:absolute;inset:0}.terminal-window{position:relative}.hero-actions{gap:1rem;display:flex}.btn-primary{background:var(--accent-primary);color:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 28px;font-weight:600;display:flex}.btn-secondary{color:var(--text-main);border:1px solid var(--border-color);background:#ffffff0d;border-radius:12px;padding:12px 28px;font-weight:500}.btn-primary:hover,.btn-secondary:hover{transform:translateY(-2px)}.section-header{margin-bottom:2rem}.section-title{font-family:var(--font-heading);align-items:center;gap:12px;margin-bottom:.5rem;font-size:1.8rem;display:flex}.section-title:before{content:"";background:var(--accent-primary);border-radius:2px;width:4px;height:24px}.section-title-count{color:var(--accent-primary);font-family:var(--font-main);white-space:nowrap;background:#3b82f61a;border-radius:999px;padding:5px 12px;font-size:.85rem;font-weight:700;line-height:1.2}.section-subtitle{color:var(--text-muted);font-size:.95rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;padding:1.5rem;transition:all .3s}.project-card:hover{background:#28283c80;border-color:#ffffff26;transform:translateY(-5px)}.project-icon{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:1.25rem;display:flex}.project-icon.has-avatar{border:1px solid var(--border-color);overflow:hidden;background:#ffffff05!important}.project-icon.has-avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.project-title{margin-bottom:.75rem;font-size:1.25rem;font-weight:700}.project-desc{color:var(--text-muted);height:3.6em;margin-bottom:1.25rem;font-size:.9rem;overflow:hidden}.project-tags{flex-wrap:wrap;gap:.5rem;display:flex}.project-tag{color:var(--text-muted);background:#ffffff0d;border-radius:6px;padding:4px 10px;font-size:.75rem}.bottom-sections{gap:2rem;display:flex}.bottom-sections section{flex:1}.section-top-row{justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;display:flex}.view-more{color:var(--accent-primary);align-items:center;gap:6px;font-size:.85rem;display:flex}.skills-container{flex-wrap:wrap;gap:.75rem;display:flex}.skill-tag{border:1px solid var(--border-color);background:#ffffff0d;border-radius:12px;align-items:center;gap:10px;padding:8px 16px;font-size:.9rem;display:flex}.stats-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:20px;padding:1.5rem}.stat-icon{color:var(--accent-primary);margin-bottom:.5rem}.stat-value{font-size:1.8rem;font-weight:800;font-family:var(--font-heading);margin-bottom:.25rem}.stat-label{color:var(--text-muted);font-size:.8rem}.assistant-panel{background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:24px;flex-direction:column;display:flex;position:sticky;top:100px;overflow:hidden}.assistant-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.assistant-header-title{align-items:center;gap:10px;font-weight:600;display:flex}.assistant-avatar-container{aspect-ratio:1;width:100%;position:relative;overflow:hidden}.assistant-avatar{object-fit:cover;width:100%;height:100%;transition:opacity .5s cubic-bezier(.25,.8,.25,1),transform .5s cubic-bezier(.175,.885,.32,1.275)}.assistant-avatar.hover-state{opacity:0;position:absolute;top:0;left:0}.assistant-avatar-container:hover .assistant-avatar.default-state{opacity:0;transform:scale(.95)}.assistant-avatar-container:hover .assistant-avatar.hover-state{opacity:1;transform:scale(1.05)}@keyframes avatarBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)scale(1.01)}}.assistant-avatar.default-state{animation:4s ease-in-out infinite avatarBreathe}.avatar-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;border-radius:30px;gap:12px;padding:8px 16px;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.avatar-btn{color:#fff;opacity:.7}.avatar-btn.active{color:var(--accent-primary);opacity:1}.assistant-content{padding:2rem 1.5rem}.assistant-title{font-size:1.5rem;font-family:var(--font-heading);margin-bottom:.75rem}.assistant-desc{color:var(--text-muted);margin-bottom:2rem;font-size:.9rem}.feature-list{flex-direction:column;gap:.75rem;margin-bottom:2rem;display:flex}.feature-item{border:1px solid var(--border-color);cursor:pointer;background:#ffffff0d;border-radius:16px;align-items:center;gap:1rem;padding:1rem;transition:all .3s;display:flex}.feature-item:hover{background:#ffffff1a;border-color:#fff3}.feature-icon{color:var(--accent-primary)}.feature-text{flex-direction:column;display:flex}.feature-name{font-size:.95rem;font-weight:600}.feature-sub{color:var(--text-muted);font-size:.8rem}.chat-input-wrapper{border:1px solid var(--border-color);background:#0000004d;border-radius:16px;align-items:center;padding:6px 6px 6px 16px;display:flex}.chat-input{color:#fff;background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.send-btn{background:var(--accent-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.assistant-footer{text-align:center;color:var(--text-muted);padding:1rem;font-size:.75rem}.footer{border-top:1px solid var(--border-color);margin-top:4rem;padding:3rem 0}.footer-container{max-width:1440px;color:var(--text-muted);justify-content:space-between;align-items:center;margin:0 auto;padding:0 2rem;font-size:.9rem;display:flex}.footer-meta{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.footer-meta a{color:var(--text-muted);text-underline-offset:4px;font-size:.84rem;text-decoration:underline}.footer-meta a:hover{color:var(--text-main)}.scroll-top{width:40px;height:40px;color:var(--text-muted);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;display:flex}.scroll-top:hover{color:var(--text-main);background:#ffffff1a}@media (width<=1200px){.home-container{flex-direction:column}.right-column{margin-top:2rem;display:block}.assistant-panel{position:static}}.projects-page{padding:0 2rem 4rem}.projects-header{justify-content:space-between;align-items:flex-end;margin-bottom:3rem;display:flex}.header-text h1{font-size:2.5rem;font-family:var(--font-heading);margin-bottom:.5rem}.header-stats{gap:2rem;display:flex}.header-stats .stat{text-align:right}.header-stats .val{color:var(--accent-primary);font-size:1.8rem;font-weight:800;font-family:var(--font-heading);display:block}.header-stats .lbl{color:var(--text-muted);font-size:.85rem}.projects-filter-bar{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:2.5rem;padding:.75rem 1.5rem;display:flex}.filter-tabs{gap:1.5rem;display:flex}.filter-tab{color:var(--text-muted);cursor:pointer;border-radius:8px;padding:4px 12px;font-size:.9rem;font-weight:500}.filter-tab.active{color:#fff;background:var(--accent-primary)}.search-box{border:1px solid var(--border-color);background:#0003;border-radius:10px;align-items:center;gap:10px;padding:8px 16px;display:flex}.search-box input{color:#fff;background:0 0;border:none;outline:none}.projects-grid-large{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem;display:grid}.project-card-full{background:var(--bg-panel);border:1px solid var(--border-color);cursor:pointer;border-radius:24px;transition:all .3s;overflow:hidden}.project-card-full:hover{border-color:#fff3;transform:translateY(-8px);box-shadow:0 20px 40px #0006}.project-card-image{justify-content:center;align-items:center;height:240px;display:flex;position:relative}.project-demo-badge{z-index:2;color:#fff;letter-spacing:0;background:linear-gradient(135deg,#ef4444,#f97316);border-radius:999px;padding:6px 12px;font-size:.75rem;font-weight:800;position:absolute;top:14px;right:14px;box-shadow:0 10px 24px #ef444459}.image-overlay{z-index:1;opacity:0;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.project-card-full:hover .image-overlay{opacity:1}.view-btn{color:#000;background:#fff;border-radius:30px;align-items:center;gap:8px;padding:10px 20px;font-weight:600;display:flex}.project-card-content{padding:1.5rem}.project-card-top{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.project-card-top h3{font-size:1.4rem;font-family:var(--font-heading)}.project-card-tags{gap:.5rem;display:flex}.project-card-tags .tag{color:var(--text-muted);background:#ffffff0d;border-radius:4px;padding:2px 8px;font-size:.7rem}.project-card-content p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.95rem}.project-card-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-top:1rem;display:flex}.project-card-footer .date{color:var(--text-muted);font-size:.8rem}.link-btn{color:var(--text-muted)}.projects-footer{text-align:center;padding:4rem 0}.skills-page{padding:0 2rem 4rem}.skills-hero{grid-template-columns:minmax(360px,1fr) minmax(560px,auto);align-items:start;gap:3rem;margin-bottom:4rem;display:grid}.skills-hero-text{max-width:760px}.skills-hero-text p{color:var(--text-muted);margin-top:.35rem;font-size:1.02rem;line-height:1.8}.skills-page.is-exporting-pdf .skills-content{display:block}.skills-page.is-exporting-pdf .skills-main{width:100%}.skills-hero-stats{grid-template-columns:repeat(5,minmax(86px,1fr));place-items:start center;gap:1.8rem;display:grid}.skills-hero-stats .stat-item{text-align:center;flex-direction:column;align-items:center;min-width:86px;display:flex}.skills-hero-stats .stat-val{font-size:2.2rem;font-weight:800;font-family:var(--font-heading);line-height:1.05}.skills-hero-stats .stat-label{white-space:nowrap;margin-top:.55rem;line-height:1.35}.skills-content{gap:3rem;display:flex}.skills-sidebar{flex-shrink:0;width:280px}.skills-sidebar h3{font-family:var(--font-heading);margin-bottom:1.5rem}.cat-list li{cursor:pointer;color:var(--text-muted);border-radius:12px;align-items:center;gap:12px;margin-bottom:.5rem;padding:12px 16px;display:flex}.cat-list li.active{background:var(--bg-panel);color:var(--text-main);border:1px solid var(--border-color)}.cat-list .count{background:#ffffff0d;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:.8rem}.learning-box{background:var(--accent-gradient);color:#fff;border-radius:24px;margin-top:3rem;padding:2rem}.skills-main{flex:1}.skills-grid-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.search-input{color:#e2e8f0;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;outline:none;width:200px;padding:.5rem 1rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.search-input::placeholder{color:#64748b}.search-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem;margin-bottom:4rem;display:grid}.skill-card-detailed{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:20px;padding:1.5rem}.skill-card-top{align-items:center;gap:12px;margin-bottom:1rem;display:flex}.skill-icon-box{background:#ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.progress-bar-wrapper{background:#ffffff0d;border-radius:3px;height:6px;margin-bottom:.5rem}.progress-bar{background:var(--accent-gradient);border-radius:3px;height:100%}.progress-val{text-align:right;color:var(--text-muted);font-size:.8rem}.skill-detail-panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;padding:2.5rem}.skill-detail-header{align-items:center;gap:2rem;margin-bottom:2.5rem;display:flex}.skill-icon-large{background:var(--accent-gradient);border-radius:20px;justify-content:center;align-items:center;width:80px;height:80px;font-size:2rem;font-weight:800;display:flex}.skill-percent-large{font-size:3rem;font-weight:800;font-family:var(--font-heading);opacity:.2;margin-left:auto}.skill-detail-body{grid-template-columns:1fr 1fr;gap:3rem;display:grid}.skill-code-right{background:var(--bg-darker);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem}.code-block{color:#a5d6ff;font-family:Fira Code,monospace;font-size:.9rem}.assistant-page{grid-template-columns:320px 1fr 320px;align-items:stretch;gap:2rem;height:calc(100vh - 124px);min-height:560px;max-height:820px;padding:0 2rem 2rem;display:grid}.ast-left,.ast-right{flex-direction:column;gap:2rem;min-height:0;padding-bottom:2px;display:flex;overflow-y:auto}.ast-main{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:32px;flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.ast-video-bg{object-fit:cover;opacity:.6;width:100%;height:100%;position:absolute;top:0;left:0}.chat-interface{z-index:1;background:linear-gradient(#0000,#0a0a0fe6);flex-direction:column;flex:1;height:100%;min-height:0;display:flex;position:relative}.chat-messages{scroll-behavior:smooth;overscroll-behavior:contain;flex-direction:column;flex:1;gap:1.5rem;min-height:0;padding:2rem;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:6px}.ast-left::-webkit-scrollbar{width:6px}.ast-right::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:0 0}.ast-left::-webkit-scrollbar-track{background:0 0}.ast-right::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:#94a3b83d;border-radius:999px}.ast-left::-webkit-scrollbar-thumb{background:#94a3b83d;border-radius:999px}.ast-right::-webkit-scrollbar-thumb{background:#94a3b83d;border-radius:999px}.msg-row{align-items:flex-start;gap:12px;width:fit-content;max-width:min(78%,720px);display:flex}.msg-row.user-msg{flex-direction:row-reverse;align-self:flex-end}.msg-avatar-container{border:1px solid #ffffff2e;border-radius:50%;flex:0 0 40px;width:40px;height:40px;position:relative;overflow:hidden;box-shadow:0 10px 24px #00000038}.msg-avatar-container .msg-avatar{object-fit:cover;width:100%;height:100%;transition:opacity .3s,transform .3s}.msg-avatar-container .msg-avatar.hover-state{opacity:0;position:absolute;top:0;left:0}.msg-avatar-container:hover .msg-avatar.default-state{opacity:0;transform:scale(.92)}.msg-avatar-container:hover .msg-avatar.hover-state{opacity:1;transform:scale(1.08)}.msg-row .msg-avatar{object-fit:cover;border:1px solid #ffffff2e;border-radius:50%;flex:0 0 40px;width:40px;height:40px;box-shadow:0 10px 24px #00000038}.user-avatar-box{color:#bfdbfe;background:#3b82f629;place-items:center;display:grid}.msg-bubble{background:#ffffff0f;border:1px solid #ffffff17;border-radius:18px;min-width:0;padding:12px 14px;box-shadow:0 12px 32px #0000002e}.bot-msg .msg-bubble{border-bottom-left-radius:6px}.user-msg .msg-bubble{color:#fff;background:linear-gradient(135deg,#2563ebf0,#0ea5e9e6);border-color:#60a5fa6b;border-bottom-right-radius:6px}.msg-bubble h4{color:var(--text-main);margin-bottom:4px;font-size:.74rem;font-weight:800;line-height:1.2}.user-msg .msg-bubble h4{color:#ffffffc7}.msg-bubble p{color:var(--text-main);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:.98rem;line-height:1.7}.user-msg .msg-bubble p{color:#fff}.bot-msg .msg-bubble p:empty:after{content:"...";color:var(--text-muted)}.chat-scroll-anchor{flex:0 0 1px;width:100%;height:1px}.chat-input-area{border-top:1px solid var(--border-color);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#050812b8;flex:none;padding:1.5rem 2rem 2rem}.input-box{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);background:#ffffff0d;border-radius:20px;align-items:center;gap:12px;padding:8px 8px 8px 24px;display:flex}.input-box input{color:#fff;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:1rem}.mic-btn{width:38px;height:38px;color:var(--text-main);background:#ffffff12;border-radius:12px;flex:0 0 38px;place-items:center;display:grid}.mic-btn:hover{color:#fff;background:var(--accent-primary);transform:translateY(-1px)}.captcha-modal-backdrop{z-index:1100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080d1b94;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.captcha-dialog{width:min(420px,100%);color:var(--text-main);background:#0f172ae6;border:1px solid #60a5fa47;border-radius:18px;gap:16px;padding:22px;display:grid;box-shadow:0 24px 80px #0206175c}.captcha-dialog-head{grid-template-columns:40px minmax(0,1fr) 34px;align-items:center;gap:12px;display:grid}.captcha-icon{color:#60a5fa;background:#60a5fa1f;border:1px solid #60a5fa47;border-radius:14px;place-items:center;width:40px;height:40px;display:grid}.captcha-dialog-head strong,.captcha-dialog-head small{display:block}.captcha-dialog-head strong{font-size:1.05rem}.captcha-dialog-head small,.captcha-modal-copy,.captcha-error{color:var(--text-muted);font-size:.84rem}.captcha-modal-copy,.captcha-error{margin:0;line-height:1.6}.captcha-close{border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:#ffffff0f;border-radius:10px;place-items:center;display:grid}.captcha-close:hover{color:var(--text-main);background:#ffffff1f}.captcha-form{gap:10px;display:grid}.captcha-form label{color:var(--text-muted);gap:7px;font-size:.82rem;display:grid}.captcha-form label span{color:var(--text-main);font-weight:800}.captcha-form input{border:1px solid var(--border-color);width:100%;height:38px;color:var(--text-main);background:#ffffff0f;border-radius:8px;outline:none;padding:0 10px}.captcha-actions{gap:8px;display:flex}.captcha-actions button,.captcha-start{border:1px solid var(--border-color);height:36px;color:var(--text-main);cursor:pointer;background:#ffffff12;border-radius:8px;padding:0 12px}.captcha-actions button.primary{background:var(--accent-primary);color:#fff;border-color:#2563eb80}.captcha-actions button:disabled,.captcha-start:disabled,.captcha-close:disabled{cursor:wait;opacity:.65}.captcha-error{color:#fecaca;background:#7f1d1d38;border:1px solid #f871713d;border-radius:10px;padding:10px 12px}@media (width<=560px){.captcha-modal-backdrop{align-items:end;padding:12px}.captcha-dialog{border-radius:16px;padding:18px}.captcha-actions{grid-template-columns:1fr 1fr;display:grid}}.contact-page{padding:0 2rem 4rem}.contact-layout{grid-template-columns:1fr 450px;gap:3rem;display:grid}.form-group{margin-bottom:1.5rem}.form-group label{color:var(--text-muted);margin-bottom:.5rem;font-size:.9rem;display:block}.form-group input,.form-group textarea{background:var(--bg-panel);border:1px solid var(--border-color);color:#fff;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-family:inherit}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent-primary)}.models-page{padding:0 2rem 4rem}.models-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem;display:grid}.model-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;padding:2rem}.model-icon{margin-bottom:1.5rem;font-size:2.5rem;display:block}.updates-page{padding:0 2rem 4rem}.timeline{max-width:800px;margin:0 auto}.timeline-item{gap:2rem;margin-bottom:3rem;display:flex;position:relative}.timeline-item:before{content:"";background:var(--border-color);width:1px;position:absolute;top:30px;bottom:-30px;left:100px}.timeline-date{text-align:right;width:100px;color:var(--accent-primary);font-weight:700;font-family:var(--font-heading);flex-shrink:0}.timeline-content{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:20px;flex:1;padding:1.5rem}.about-page{padding:0 2rem 4rem}.about-header{text-align:center;margin-bottom:4rem}.about-header h1{font-size:3rem;font-family:var(--font-heading);margin-bottom:1rem}.about-header-actions{justify-content:center;gap:1rem;margin-top:2rem;display:flex}.about-content{grid-template-columns:350px 1fr;gap:3rem;display:grid}.profile-card{background:var(--bg-panel);border:1px solid var(--border-color);text-align:center;border-radius:32px;margin-bottom:2rem;padding:3rem 2rem}.profile-avatar-wrapper{background:var(--accent-gradient);border-radius:50%;width:150px;height:150px;margin:0 auto 2rem;padding:8px}.profile-avatar{object-fit:cover;border:4px solid var(--bg-dark);border-radius:50%;width:100%;height:100%}.profile-tag{color:var(--accent-primary);background:#3b82f61a;border-radius:20px;margin:.5rem 0 2rem;padding:4px 12px;font-size:.85rem;font-weight:600;display:inline-block}.profile-info-list{text-align:left;flex-direction:column;gap:1rem;margin-bottom:2rem;display:flex}.info-item{color:var(--text-muted);align-items:center;gap:12px;font-size:.9rem;display:flex}.profile-social{justify-content:center;gap:1rem;display:flex}.profile-social button{width:40px;height:40px;color:var(--text-muted);background:#ffffff0d;border-radius:10px;justify-content:center;align-items:center;display:flex}.info-section{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;margin-bottom:2rem;padding:2rem}.info-section h3{font-family:var(--font-heading);margin-bottom:1.5rem}.detail-row{border-bottom:1px solid var(--border-color);justify-content:space-between;padding:12px 0;font-size:.9rem;display:flex}.detail-row span:first-child{color:var(--text-muted)}.download-section{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;padding:2rem}.dl-btn{border:1px solid var(--border-color);text-align:left;background:#ffffff08;border-radius:16px;align-items:center;gap:1.5rem;width:100%;margin-top:1rem;padding:1.25rem;display:flex}.dl-icon{width:44px;height:44px;color:var(--accent-primary);background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;display:flex}.dl-text span{font-size:.95rem;font-weight:600;display:block}.dl-text small{color:var(--text-muted);font-size:.75rem}.timeline-section{margin-bottom:4rem}.timeline-section h3.section-title{align-items:center;gap:15px;margin-bottom:2.5rem;font-size:1.8rem;display:flex}.timeline{padding-left:2rem;position:relative}.timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:0;bottom:0;left:0}.timeline-item{padding-bottom:3rem;position:relative}.timeline-dot{background:var(--bg-dark);border:3px solid var(--accent-primary);border-radius:50%;width:12px;height:12px;position:absolute;top:0;left:-2rem;transform:translate(-50%)}.timeline-date{color:var(--accent-primary);font-weight:700;font-family:var(--font-heading);margin-bottom:.5rem}.timeline-content h4{margin-bottom:.5rem;font-size:1.3rem}.degree{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem;display:inline-block}.tech-tags{gap:1rem;margin-top:1rem;display:flex}.tech-tags span{color:var(--accent-primary);font-size:.85rem;font-weight:600}.call-view{flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:500px;padding:4rem 2rem;display:flex}.call-avatar-wrapper{margin-bottom:2.5rem;position:relative}.call-avatar{border:4px solid var(--accent-primary);object-fit:cover;z-index:2;border-radius:50%;width:160px;height:160px;position:relative;box-shadow:0 10px 30px #0000004d}.avatar-pulse{background:var(--accent-primary);opacity:.3;z-index:1;border-radius:50%;animation:2s infinite pulse;position:absolute;inset:-4px}@keyframes pulse{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}.call-status{color:var(--text-main);letter-spacing:1px;margin-bottom:3.5rem;font-size:1.4rem;font-weight:700}.call-actions-row{gap:1.5rem;display:flex}.call-action-btn{cursor:pointer;border:none;border-radius:30px;justify-content:center;align-items:center;gap:12px;width:200px;height:60px;font-size:1.1rem;font-weight:700;transition:all .3s;display:flex}.call-action-btn.start{background:var(--accent-primary);color:#fff;box-shadow:0 8px 20px #3b82f64d}.call-action-btn.play{background:var(--bg-panel);border:1px solid var(--border-color);color:#fff}.call-action-btn:hover{transform:translateY(-4px);box-shadow:0 12px 25px #0006}.call-action-btn:active{transform:translateY(0)}.call-controls-bottom{gap:2rem;margin-top:4rem;display:flex}.control-icon-btn{border:1px solid var(--border-color);width:50px;height:50px;color:var(--text-muted);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.control-icon-btn:hover{color:var(--text-main);background:#ffffff1a}.control-icon-btn.active{color:#fff;background:#ef4444;border-color:#ef4444}.live-call-panel{background:radial-gradient(circle at 50% 25%,#3b82f642,#0000 34%),radial-gradient(circle at 20% 80%,#0ea5e929,#0000 30%),linear-gradient(160deg,#060d1ff5,#050812fa);flex-direction:column;justify-content:space-between;min-height:min(620px,100vh - 140px);padding:clamp(18px,2.4vh,28px);display:flex;position:relative;overflow:hidden}.live-call-panel:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 75%);mask-image:radial-gradient(circle,#000,#0000 75%)}.video-call-panel{background:radial-gradient(circle at 65% 18%,#10b9812e,#0000 30%),radial-gradient(circle at 30% 75%,#3b82f638,#0000 34%),linear-gradient(160deg,#031118f5,#050812fa)}.call-topbar{z-index:1;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex;position:relative}.call-kicker{color:var(--accent-primary);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.35rem;font-size:.82rem;font-weight:800;display:block}.call-topbar h2{font-size:clamp(1.7rem,3.2vw,3rem);line-height:1}.call-language-note{color:var(--text-muted);margin-top:.55rem;font-size:.86rem;line-height:1.4}.call-pill{border:1px solid var(--border-color);color:var(--text-muted);letter-spacing:.08em;border-radius:999px;padding:8px 12px;font-size:.76rem;font-weight:800}.call-pill.online{color:#bbf7d0;background:#22c55e1a;border-color:#22c55e59}.call-pill.connecting{color:#fde68a;background:#f59e0b1f;border-color:#f59e0b6b}.call-status-area{flex-direction:column;align-items:flex-end;min-width:min(168px,24vw);display:flex;position:relative}.call-stage{z-index:1;flex:1;place-items:center;min-height:clamp(210px,36vh,300px);display:grid;position:relative}.orbital-avatar{aspect-ratio:1;place-items:center;width:min(38vw,250px,32vh);display:grid;position:relative}.orbital-avatar img,.orbital-avatar .animated-avatar-wrapper{z-index:2;border:4px solid #ffffffd1;border-radius:50%;transition:opacity .5s cubic-bezier(.25,.8,.25,1),transform .3s ease-in-out;overflow:hidden;box-shadow:0 30px 80px #00000073,0 0 55px #3b82f659;width:58%!important;height:58%!important}.orbital-avatar.speaking .animated-avatar-wrapper,.orbital-avatar.thinking .animated-avatar-wrapper{transform:scale(1.06)}.orb-ring{border:1px solid #93c5fd3d;border-radius:50%;position:absolute;inset:0}.ring-one{border-top-color:#60a5fad9;animation:9s linear infinite rotate-orb}.ring-two{border-right-color:#2dd4bfbf;animation:7s linear infinite reverse rotate-orb;inset:11%}.orbital-avatar.listening .ring-one,.orbital-avatar.listening .ring-two,.orbital-avatar.speaking .ring-one,.orbital-avatar.speaking .ring-two{animation-duration:2.4s}.orbital-avatar.connecting .ring-one,.orbital-avatar.connecting .ring-two{opacity:.62;animation-duration:5.2s}.orbital-avatar.connecting img,.orbital-avatar.connecting .animated-avatar-wrapper{filter:saturate(.75)}.orbital-avatar.thinking img,.orbital-avatar.thinking .animated-avatar-wrapper{filter:saturate(.8)}@keyframes rotate-orb{to{transform:rotate(360deg)}}.self-video-preview{aspect-ratio:3/2;object-fit:cover;background:#020617;border:1px solid #ffffff29;border-radius:18px;width:min(168px,24vw);height:auto;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 40px #00000061}.call-start-overlay{z-index:3;cursor:pointer;color:#fff;background:linear-gradient(135deg,#2563eb,#06b6d4);border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;height:52px;padding:0 22px;font-weight:800;animation:1.6s ease-in-out infinite start-breath;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 18px 45px #2563eb61}@keyframes start-breath{0%,to{box-shadow:0 18px 45px #2563eb47}50%{box-shadow:0 18px 60px #22d3ee85}}.live-caption{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);min-height:60px;color:var(--text-main);text-align:center;background:#ffffff12;border:1px solid #ffffff1a;border-radius:22px;justify-content:center;align-items:center;padding:14px 18px;font-size:1rem;display:flex;position:relative}.voice-wave{z-index:1;justify-content:center;align-items:center;gap:5px;height:34px;margin:10px 0 4px;display:flex;position:relative}.voice-wave span{background:#94a3b873;border-radius:999px;width:4px;height:10px}.voice-wave span.active{background:linear-gradient(#93c5fd,#22d3ee);animation:.98s ease-in-out infinite call-wave}@keyframes call-wave{0%,to{opacity:.45;height:10px}50%{opacity:1;height:30px}}.call-dock{z-index:1;justify-content:center;align-items:center;gap:18px;display:flex;position:relative}.call-circle-btn,.call-primary-btn{cursor:pointer;color:#fff;border:none;transition:transform .2s,background .2s,box-shadow .2s}.call-circle-btn{background:#ffffff1a;border:1px solid #ffffff24;border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.call-circle-btn.muted{color:#fde68a;background:#f59e0b38}.call-primary-btn{background:linear-gradient(135deg,#2563eb,#06b6d4);border-radius:999px;justify-content:center;align-items:center;gap:10px;min-width:188px;height:58px;font-size:1.05rem;font-weight:800;display:flex;box-shadow:0 18px 40px #2563eb52}.call-primary-btn.hangup{background:linear-gradient(135deg,#ef4444,#f97316);box-shadow:0 18px 40px #ef444452}.call-circle-btn:hover,.call-primary-btn:hover{transform:translateY(-3px)}.mini-transcript{gap:10px;max-height:280px;display:grid;overflow:auto}.mini-transcript p{color:var(--text-muted);background:#ffffff0f;border-radius:14px;padding:10px 12px;font-size:.9rem;line-height:1.55}.mini-transcript p.from-user{color:#dbeafe;background:#3b82f621}@media (width<=1200px){.home-container{flex-direction:column}.right-column{margin-top:2rem;display:block}.assistant-panel{position:static}}.contact-left{flex-direction:column;gap:2rem;display:flex}.contact-intro h1{font-size:3rem;font-family:var(--font-heading);margin-bottom:1rem}.plane-graphic{color:var(--accent-primary);opacity:.1;justify-content:center;padding:3rem 0;display:flex}.contact-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;padding:2rem}.card-header{gap:1.5rem;margin-bottom:2rem;display:flex}.header-icon{background:var(--accent-gradient);color:#fff;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.contact-form .form-group{margin-bottom:1.25rem;position:relative}.input-icon{color:var(--text-muted);position:absolute;top:50%;left:16px;transform:translateY(-50%)}.contact-form input{padding-left:48px!important}.contact-form textarea{min-height:150px}.btn-full{justify-content:center;width:100%}.form-tip{text-align:center;color:var(--text-muted);margin-top:1rem;font-size:.8rem}.social-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.social-item{border:1px solid var(--border-color);background:#ffffff08;border-radius:16px;gap:1rem;padding:1.25rem;display:flex}.social-icon{color:#fff;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.social-icon.wechat{background:#07c160}.social-icon.email{background:#3b82f6}.social-icon.github{background:#333}.social-icon.linkedin{background:#0077b5}.social-info h4{margin-bottom:2px;font-size:1rem}.social-info p{color:var(--text-muted);font-size:.9rem}.social-info span{color:var(--accent-primary);font-size:.75rem}.contact-footer-banner{background:var(--accent-gradient);color:#fff;border-radius:24px;justify-content:space-between;align-items:center;padding:2.5rem;display:flex}.banner-text h3{margin-bottom:.5rem}.btn-outline{color:#fff;border:1px solid #fff;border-radius:20px;padding:10px 24px;font-weight:600}.chat-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:32px;flex-direction:column;height:100%;display:flex}.chat-header{border-bottom:1px solid var(--border-color);padding:1.5rem 2rem}.chat-status{align-items:center;gap:8px;display:flex}.dot.online{background:#10b981;border-radius:50%;width:8px;height:8px;box-shadow:0 0 10px #10b981}.status-label{color:#10b981;background:#10b9811a;border-radius:4px;margin-left:8px;padding:2px 6px;font-size:.7rem}.chat-profile{align-items:center;gap:1.5rem;padding:1.5rem 2rem;display:flex}.chat-avatar{border:2px solid var(--accent-primary);border-radius:50%;width:60px;height:60px}.ai-tag{background:var(--accent-gradient);color:#fff;border-radius:4px;margin-left:8px;padding:2px 6px;font-size:.7rem}.greeting{color:var(--accent-primary);margin-top:4px;font-weight:600}.chat-suggestions{flex-wrap:wrap;gap:.5rem;padding:0 2rem 1.5rem;display:flex}.chat-suggestions button{border:1px solid var(--border-color);color:var(--text-muted);background:#ffffff0d;border-radius:12px;padding:6px 12px;font-size:.8rem}.chat-body{background:#0000001a;flex-direction:column;flex:1;gap:1.5rem;padding:2rem;display:flex;overflow-y:auto}.chat-divider{text-align:center;margin:1rem 0;position:relative}.chat-divider span{background:var(--bg-panel);color:var(--text-muted);z-index:1;padding:0 12px;font-size:.75rem;position:relative}.chat-divider:before{content:"";background:var(--border-color);width:100%;height:1px;position:absolute;top:50%;left:0}.message{gap:1rem;max-width:85%;display:flex}.message.sent{flex-direction:row-reverse;align-self:flex-end}.message-content{border-radius:16px;padding:1rem 1.25rem;font-size:.95rem;position:relative}.sent .message-content{background:var(--accent-primary);color:#fff;border-bottom-right-radius:2px}.received .message-content{border:1px solid var(--border-color);background:#ffffff0d;border-bottom-left-radius:2px}.msg-avatar{border-radius:50%;width:32px;height:32px}.msg-list{margin:10px 0;padding-left:20px}.time{opacity:.6;text-align:right;margin-top:4px;font-size:.7rem;display:block}.chat-footer{padding:2rem}.chat-input-wrapper{border:1px solid var(--border-color);background:#ffffff08;border-radius:20px;align-items:center;gap:15px;padding:10px 10px 10px 20px;display:flex}.chat-actions{color:var(--text-muted);gap:12px;display:flex}.chat-input-wrapper input{color:#fff;background:0 0;border:none;outline:none;flex:1}.chat-send-btn{background:var(--accent-gradient);color:#fff;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.ast-status{background:#0003;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.ast-msg{margin-bottom:2rem}.ast-msg-bot .content{background:#3b82f61a;border:1px solid #3b82f633;border-radius:20px;padding:1.5rem}.project-detail-page{max-width:1200px;margin:0 auto;padding:0 2rem 4rem}.breadcrumb{color:var(--text-muted);align-items:center;gap:8px;margin-bottom:2rem;font-size:.9rem;transition:color .3s;display:inline-flex}.breadcrumb:hover{color:var(--accent-primary)}.pd-hero-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:32px;align-items:center;gap:3rem;margin-bottom:2rem;padding:3rem;display:flex;position:relative;overflow:hidden}.pd-hero-card:before{content:"";background:radial-gradient(circle, var(--accent-primary) 0%, transparent 70%);opacity:.1;filter:blur(40px);pointer-events:none;width:400px;height:400px;position:absolute;top:-50%;right:-10%}.pd-icon{border-radius:24px;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:120px;display:flex;box-shadow:0 10px 30px #0003}.pd-hero-info{flex:1}.pd-hero-info h1{font-size:2.8rem;font-family:var(--font-heading);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:1rem}.pd-hero-info p{color:var(--text-muted);max-width:600px;margin-bottom:1.5rem;font-size:1.1rem}.pd-tags{flex-wrap:wrap;gap:.75rem;display:flex}.pd-tags span{border:1px solid var(--border-color);color:var(--text-muted);background:#ffffff0d;border-radius:10px;padding:6px 14px;font-size:.85rem}.pd-actions{flex-direction:column;align-items:flex-end;gap:1rem;display:flex}.wechat-contact{color:var(--text-muted);border:1px solid var(--border-color);background:#0003;border-radius:12px;padding:8px 16px;font-size:.85rem}.pd-tabs{border-bottom:1px solid var(--border-color);gap:2.5rem;margin-bottom:3rem;padding-bottom:1rem;display:flex}.pd-tabs span{color:var(--text-muted);cursor:pointer;font-size:1rem;font-weight:500;transition:color .3s;position:relative}.pd-tabs span:hover{color:var(--text-main)}.pd-tabs span.active{color:var(--accent-primary)}.pd-tabs span.active:after{content:"";background:var(--accent-primary);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1rem;left:0;right:0}.pd-content{grid-template-columns:1fr 320px;gap:3rem;display:grid}.pd-section{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;margin-bottom:2rem;padding:2.5rem}.pd-section h3{font-size:1.5rem;font-family:var(--font-heading);align-items:center;gap:12px;margin-bottom:1.5rem;display:flex}.pd-section h3:before{content:"";background:var(--accent-primary);border-radius:2px;width:4px;height:20px}.pd-section p{color:var(--text-muted);margin-bottom:1.5rem;line-height:1.8}.pd-section ul{padding-left:1.2rem}.pd-section li{color:var(--text-muted);margin-bottom:1rem;position:relative}.pd-section li strong{color:var(--text-main)}.pd-gallery{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem;display:grid}.pd-gallery img{border:1px solid var(--border-color);border-radius:16px;width:100%;transition:transform .3s}.pd-gallery img:hover{transform:scale(1.02)}.highlights-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.hl-card{border:1px solid var(--border-color);text-align:center;background:#ffffff08;border-radius:20px;padding:1.5rem}.hl-icon{margin-bottom:1rem;font-size:2.5rem}.hl-card h4{margin-bottom:.5rem}.hl-card p{margin-bottom:0;font-size:.85rem}.sidebar-block{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;margin-bottom:2rem;padding:2rem}.sidebar-block h3{font-size:1.2rem;font-family:var(--font-heading);margin-bottom:1.5rem}.info-row{border-bottom:1px solid var(--border-color);justify-content:space-between;padding:12px 0;font-size:.9rem;display:flex}.info-row:last-child{border-bottom:none}.info-row span:first-child{color:var(--text-muted)}.status-tag{color:#10b981;background:#10b9811a;border-radius:6px;padding:2px 10px;font-size:.75rem;font-weight:600}.tech-acc{flex-direction:column;gap:1rem;display:flex}.acc-item{border:1px solid var(--border-color);border-radius:12px;padding:1rem}.acc-item h4{cursor:pointer;justify-content:space-between;align-items:center;font-size:.95rem;display:flex}.acc-item ul{margin-top:1rem;display:none}.acc-item.active{background:#ffffff08}.acc-item.active ul{display:block}.acc-item li{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem}@media (width<=1024px){.pd-content{grid-template-columns:1fr}.pd-hero-card{text-align:center;flex-direction:column;gap:2rem}.pd-actions{align-items:center}.highlights-grid{grid-template-columns:1fr}}.models-page{max-width:1400px;margin:0 auto;padding:0 2rem 4rem}.models-header{text-align:center;margin-bottom:4rem}.header-badge{color:var(--accent-primary);text-transform:uppercase;letter-spacing:1px;background:#3b82f61a;border:1px solid #3b82f633;border-radius:20px;margin-bottom:1.5rem;padding:6px 16px;font-size:.85rem;font-weight:700;display:inline-block}.models-header h1{font-size:3.5rem;font-family:var(--font-heading);margin-bottom:1.5rem;font-weight:800}.models-header p{color:var(--text-muted);max-width:700px;margin:0 auto;font-size:1.1rem;line-height:1.8}.models-grid{grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:4rem;display:grid}.model-card{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:28px;flex-direction:column;padding:2rem;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.model-card:hover{border-color:var(--accent-primary);transform:translateY(-10px);box-shadow:0 20px 40px #0000004d}.model-card:after{content:"";background:radial-gradient(circle at top right, var(--accent-primary) 0%, transparent 70%);opacity:0;width:100px;height:100px;transition:opacity .4s;position:absolute;top:0;right:0}.model-card:hover:after{opacity:.1}.model-card-top{align-items:center;gap:1.25rem;margin-bottom:1.5rem;display:flex}.model-icon-wrapper{border:1px solid var(--border-color);background:#ffffff08;border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.75rem;display:flex}.model-meta{flex:1}.model-type{color:var(--accent-primary);text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:700;display:block}.model-meta h3{font-size:1.25rem;font-family:var(--font-heading);font-weight:700}.model-desc{color:var(--text-muted);flex:1;margin-bottom:1.5rem;font-size:.9rem;line-height:1.6}.model-stats-row{background:#0003;border-radius:16px;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;display:flex}.model-stat{color:var(--text-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.model-stat strong{color:var(--text-main)}.status-ready{color:#10b981}.model-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:0;display:flex}.model-tag{border:1px solid var(--border-color);color:var(--text-muted);background:#ffffff0d;border-radius:8px;padding:4px 10px;font-size:.75rem}.training-environment{margin-bottom:5rem}.env-info{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:32px;padding:3rem;position:relative;overflow:hidden}.env-info:before{content:"";background:var(--accent-gradient);width:100%;height:4px;position:absolute;top:0;left:0}.env-info h3{font-size:1.75rem;font-family:var(--font-heading);align-items:center;gap:15px;margin-bottom:2.5rem;display:flex}.env-grid{grid-template-columns:repeat(4,1fr);gap:2rem;display:grid}.env-item h4{color:var(--accent-primary);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:.9rem}.env-item p{color:var(--text-main);font-size:1rem;font-weight:600;line-height:1.5}.models-workflow{text-align:center}.section-title{font-size:2.25rem;font-family:var(--font-heading);margin-bottom:3.5rem}.workflow-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:2rem;display:grid;position:relative}.workflow-steps:after{content:"";background:var(--border-color);z-index:0;height:1px;position:absolute;top:30px;left:10%;right:10%}.step{z-index:1;position:relative}.step-num{background:var(--bg-dark);border:2px solid var(--accent-primary);width:60px;height:60px;color:var(--accent-primary);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-weight:800;display:flex;box-shadow:0 0 20px #3b82f633}.step h4{margin-bottom:10px;font-size:1.1rem;font-weight:700}.step p{color:var(--text-muted);font-size:.85rem;line-height:1.6}@media (width<=1200px){.models-grid,.env-grid,.workflow-steps{grid-template-columns:repeat(2,1fr)}.workflow-steps:after{display:none}}@media (width<=768px){.models-grid,.env-grid,.workflow-steps{grid-template-columns:1fr}.models-header h1{font-size:2.5rem}}.contact-page.single-screen{background:var(--bg-dark);z-index:50;justify-content:center;align-items:center;padding:1rem 2rem;display:flex;position:fixed;inset:72px 0 0;overflow:hidden}.contact-page.single-screen .contact-layout{grid-template-columns:1.1fr .9fr;align-items:center;gap:4rem;width:100%;max-width:1200px;display:grid}.contact-left-alt{flex-direction:column;gap:1.25rem;display:flex}.contact-header-badge{color:var(--accent-primary);letter-spacing:2px;background:#3b82f61a;border:1px solid #3b82f633;border-radius:6px;margin-bottom:.25rem;padding:4px 10px;font-size:.7rem;font-weight:700;display:inline-block}.contact-hero-text h3{color:var(--text-main);margin-bottom:.25rem;font-size:1.25rem;font-weight:700}.contact-hero-text p{color:var(--text-muted);max-width:480px;font-size:.95rem;line-height:1.4}.contact-form-container{width:100%}.contact-form-alt{flex-direction:column;gap:1rem;display:flex}.form-row-dual{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-group-alt{flex-direction:column;gap:.4rem;display:flex}.form-group-alt label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.75rem;font-weight:700}.input-wrapper-alt{background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;align-items:center;padding:0 1rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.input-wrapper-alt:focus-within{border-color:var(--accent-primary);background:#ffffff0d;transform:translateY(-1px);box-shadow:0 0 20px #3b82f626}.input-wrapper-alt svg{color:var(--accent-primary);opacity:.7;margin-right:12px}.input-wrapper-alt input{height:44px;color:var(--text-main);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.input-wrapper-alt input::placeholder{color:#ffffff4d}.textarea-wrapper{align-items:flex-start;padding:12px 1rem}.textarea-wrapper textarea{width:100%;min-height:100px;color:var(--text-main);resize:none;background:0 0;border:none;outline:none;padding-top:2px;font-size:.95rem;line-height:1.6}.textarea-wrapper textarea::placeholder{color:#ffffff4d}.btn-submit-contact{background:var(--accent-gradient);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:48px;font-size:.95rem;font-weight:700;transition:all .3s;display:flex}.btn-submit-contact:disabled{cursor:wait;opacity:.72}.contact-form-status{color:var(--text-muted);margin:-.25rem 0 0;font-size:.85rem;line-height:1.5}.contact-form-status.sent{color:#22c55e}.contact-form-status.error{color:#f87171}.social-links-row{gap:1.2rem;display:flex}.social-link-item{border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.contact-right-alt{justify-content:center;align-items:center;display:flex}.chat-card.compact{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:24px;width:100%;max-width:380px;height:520px;box-shadow:0 30px 60px #0006}.chat-body-alt{background:#0000001a;flex-direction:column;flex:1;gap:1rem;padding:1.2rem;display:flex;overflow-y:auto}.chat-suggestions-compact{flex-direction:column;gap:8px;margin-top:.5rem;display:flex}.chat-suggestions-compact button{border-radius:10px;padding:8px 14px;font-size:.8rem}.chat-footer-alt{padding:1.2rem}.chat-input-wrapper-alt{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;padding:6px 6px 6px 16px;transition:all .3s;display:flex}.chat-input-wrapper-alt:focus-within{border-color:var(--accent-primary);background:#ffffff14}.chat-input-wrapper-alt input{flex:1;padding:0;font-size:.95rem;color:var(--text-main)!important;background:0 0!important;border:none!important;outline:none!important}.chat-input-wrapper-alt input::placeholder{color:#fff6}.chat-send-btn-alt{background:var(--accent-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .3s;display:flex}.contact-captcha-panel{border:1px solid var(--border-color);background:#ffffff0a;border-radius:14px;align-self:stretch;gap:12px;padding:14px;display:grid}.contact-captcha-head{color:var(--accent-primary);align-items:center;gap:8px;font-size:.9rem;font-weight:800;display:flex}.contact-captcha-panel label{color:var(--text-muted);gap:8px;font-size:.85rem;display:grid}.contact-captcha-panel label span{color:var(--text-main);font-weight:700}.contact-captcha-panel input{border:1px solid var(--border-color);width:100%;min-width:0;height:40px;color:var(--text-main);font:inherit;background:#00000029;border-radius:10px;outline:none;padding:0 12px}.contact-captcha-panel input:focus{border-color:var(--accent-primary)}.contact-captcha-actions{justify-content:flex-end;gap:8px;display:flex}.contact-captcha-actions button,.contact-captcha-start{border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;background:#ffffff0f;border-radius:10px;padding:8px 12px;font-size:.82rem}.contact-captcha-actions button.primary{background:var(--accent-primary);color:#fff;border-color:#0000}.contact-captcha-actions button:disabled,.contact-captcha-start:disabled{cursor:not-allowed;opacity:.65}.contact-captcha-error{color:#f87171;margin:0;font-size:.82rem;line-height:1.5}.chat-body-alt::-webkit-scrollbar{width:6px}.chat-body-alt::-webkit-scrollbar-track{background:0 0}.chat-body-alt::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.chat-body-alt::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}@media (width<=1024px){.contact-page.single-screen{height:auto;padding:6rem 2rem;overflow-y:visible}.contact-page.single-screen .contact-layout{grid-template-columns:1fr;gap:3rem}.contact-intro-compact h1{font-size:2.5rem}}.m-app{background:var(--bg-dark);min-height:100dvh;color:var(--text-main);font-family:var(--font-main);flex-direction:column;display:flex}.m-app-content{flex:1;padding-bottom:72px;overflow-y:auto}.m-page{padding:16px 16px 32px}.m-bottom-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border-color);z-index:999;height:64px;padding-bottom:env(safe-area-inset-bottom);background:#0a0a0ff2;display:flex;position:fixed;bottom:0;left:0;right:0}.m-nav-item{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:.65rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.m-nav-item.active{color:var(--accent-primary)}.m-nav-item svg{width:22px;height:22px}.m-topbar{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);background:#0a0a0feb;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex;position:sticky;top:0}.m-topbar-logo{font-size:1.1rem;font-weight:800;font-family:var(--font-heading);align-items:center;gap:8px;display:flex}.m-topbar-logo .logo-icon{justify-content:center;align-items:center;width:28px;height:28px;display:flex}.m-topbar-actions{align-items:center;gap:8px;display:flex}.m-language-switcher select{border:1px solid var(--border-color);min-width:54px;height:34px;color:var(--text-main);background:#ffffff0d;border-radius:999px;padding:0 8px;font-size:.72rem;font-weight:800}.m-hero{padding:8px 0 16px}.m-hero-tag{color:var(--accent-primary);background:#3b82f61a;border-radius:16px;align-items:center;gap:6px;height:28px;margin-bottom:16px;padding:5px 14px;font-size:.8rem;font-weight:600;display:inline-flex;overflow:hidden}.m-tag-cycle{animation:.4s ease-out mTagIn;display:inline-block}@keyframes mTagIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.m-terminal{background:#0d1117;border:1px solid #00ff881f;border-radius:10px;margin-bottom:16px;overflow:hidden}.m-terminal-header{background:#ffffff0a;border-bottom:1px solid #ffffff0f;align-items:center;gap:6px;padding:8px 12px;display:flex}.m-dot{border-radius:50%;width:10px;height:10px}.m-dot.red{background:#ff5f57}.m-dot.yellow{background:#febc2e}.m-dot.green{background:#28c840}.m-terminal-title{text-align:center;color:#ffffff4d;flex:1;font-family:Fira Code,monospace;font-size:.65rem}.m-terminal-body{scroll-behavior:smooth;height:180px;padding:10px 12px;overflow-y:auto}.m-term-line{white-space:pre-wrap;word-break:break-all;font-family:Fira Code,monospace;font-size:.7rem;line-height:1.6}.m-prompt{color:#0f8;font-weight:700}.m-prefix{color:#00ff8880}.m-cmd{color:#e6edf3;font-weight:600}.m-output{color:#c8dcf0d9}.m-cursor{vertical-align:text-bottom;background:#0f8;width:7px;height:13px;margin-left:1px;animation:.7s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.m-hero-actions{flex-direction:column;gap:10px;display:flex}.m-btn-primary{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:.95rem;font-weight:700;display:flex;box-shadow:0 4px 15px #3b82f64d}.m-btn-primary:disabled{cursor:wait;opacity:.72}.m-btn-outline{color:var(--text-main);border:1px solid var(--border-color);cursor:pointer;background:#ffffff0d;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:.95rem;font-weight:500;display:flex}.m-stats-strip{-webkit-overflow-scrolling:touch;gap:8px;padding:16px 0;display:flex;overflow-x:auto}.m-stat-item{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:14px;flex:1;min-width:0;padding:12px 8px}.m-stat-val{font-size:1.3rem;font-weight:800;font-family:var(--font-heading);color:var(--accent-primary);display:block}.m-stat-lbl{color:var(--text-muted);font-size:.65rem}.m-section{padding:20px 0}.m-section-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.m-section-head h2{font-size:1.2rem;font-family:var(--font-heading);font-weight:700}.m-view-more{color:var(--accent-primary);background:0 0;border:none;align-items:center;gap:4px;font-size:.8rem;font-weight:600;display:flex}.m-projects-scroll{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.m-project-card{background:var(--bg-card);border:1px solid var(--border-color);scroll-snap-align:start;cursor:pointer;border-radius:18px;flex-shrink:0;min-width:240px;max-width:260px;padding:16px;transition:transform .2s}.m-project-card:active{transform:scale(.97)}.m-project-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:10px;display:flex}.m-project-icon.has-avatar{border:1px solid var(--border-color);overflow:hidden;background:#ffffff05!important}.m-project-icon.has-avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.m-project-card h3{margin-bottom:6px;font-size:.95rem;font-weight:700}.m-project-card p{color:var(--text-muted);height:3em;margin-bottom:8px;font-size:.75rem;line-height:1.5;overflow:hidden}.m-project-tags{flex-wrap:wrap;gap:4px;display:flex}.m-project-tags span{color:var(--text-muted);background:#ffffff0d;border-radius:6px;padding:3px 8px;font-size:.65rem}.m-skills-wrap{flex-wrap:wrap;gap:8px;display:flex}.m-skill-chip{border:1px solid var(--border-color);background:#ffffff0d;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;display:flex}.m-skill-icon{font-size:1rem}.m-assistant-cta{background:var(--bg-panel);border:1px solid var(--border-color);cursor:pointer;border-radius:18px;align-items:center;gap:14px;margin-top:16px;padding:16px;transition:all .2s;display:flex}.m-assistant-cta-top{margin-top:0;margin-bottom:16px}.m-assistant-cta:active{transform:scale(.98)}.m-cta-avatar{border:2px solid var(--accent-primary);border-radius:50%;flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.m-cta-avatar img{object-fit:cover;width:100%;height:100%;transition:opacity .4s,transform .4s}.m-cta-avatar img.hover-state{opacity:0;position:absolute;top:0;left:0}.m-assistant-cta:hover .m-cta-avatar img.default-state,.m-assistant-cta:active .m-cta-avatar img.default-state{opacity:0}.m-assistant-cta:hover .m-cta-avatar img.hover-state,.m-assistant-cta:active .m-cta-avatar img.hover-state{opacity:1;transform:scale(1.08)}.m-cta-text{flex:1}.m-cta-text h3{margin-bottom:2px;font-size:.95rem;font-weight:700}.m-cta-text p{color:var(--text-muted);font-size:.75rem;line-height:1.4}.m-page-header{padding:8px 0 16px}.m-page-header h1{font-size:1.8rem;font-family:var(--font-heading);margin-bottom:4px;font-weight:800}.m-page-header p{color:var(--text-muted);font-size:.9rem}.m-page.is-exporting-pdf [data-pdf-exclude=true]{display:none!important}.m-page.is-exporting-pdf,.m-page.is-exporting-pdf *{transition:none!important;animation:none!important}.m-page.is-exporting-pdf .m-card,.m-page.is-exporting-pdf .m-about-project-card,.m-page.is-exporting-pdf .m-project-list-card,.m-page.is-exporting-pdf .m-project-card,.m-page.is-exporting-pdf .m-skill-card,.m-page.is-exporting-pdf .m-model-card,.m-page.is-exporting-pdf .m-workflow-step,.m-page.is-exporting-pdf .m-timeline-item{break-inside:avoid;page-break-inside:avoid}.m-header-stats{flex-wrap:wrap;gap:12px 20px;margin-top:12px;display:flex}.m-header-stats div{flex-direction:column;display:flex}.m-header-stats strong{color:var(--accent-primary);font-size:1.4rem;font-weight:800;font-family:var(--font-heading)}.m-header-stats span{color:var(--text-muted);font-size:.7rem}.m-badge{color:var(--accent-primary);background:#3b82f61a;border:1px solid #3b82f633;border-radius:16px;margin-bottom:8px;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-block}.m-download-hint{color:var(--text-muted);text-align:center;margin-top:10px;font-size:.78rem;line-height:1.5}.m-resume-actions{flex-direction:column;gap:10px;display:flex}.m-resume-actions .m-btn-primary,.m-resume-actions .m-btn-outline{min-height:48px}.m-resume-actions .m-btn-outline svg:last-child{opacity:.72;margin-left:auto}.m-search-bar{border:1px solid var(--border-color);background:#ffffff0d;border-radius:12px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;display:flex}.m-search-bar svg{color:var(--text-muted);flex-shrink:0}.m-search-bar input{color:#fff;background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.m-filter-chips{-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:12px;display:flex;overflow-x:auto}.m-chip{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:#ffffff0d;border-radius:20px;flex-shrink:0;padding:7px 14px;font-size:.8rem;font-weight:500;transition:all .2s}.m-chip.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.m-project-list{flex-direction:column;gap:12px;display:flex}.m-project-list-card{background:var(--bg-card);border:1px solid var(--border-color);cursor:pointer;border-radius:16px;align-items:center;gap:14px;padding:14px;transition:transform .2s;display:flex}.m-project-list-card:active{transform:scale(.98)}.m-plc-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative}.m-project-demo-badge{color:#fff;white-space:nowrap;background:linear-gradient(135deg,#ef4444,#f97316);border-radius:999px;padding:2px 6px;font-size:.55rem;font-weight:800;line-height:1.2;position:absolute;top:-6px;right:-8px;box-shadow:0 6px 14px #ef444452}.m-plc-info{flex:1;min-width:0}.m-plc-info h3{white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:.95rem;font-weight:700;overflow:hidden}.m-plc-info p{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.m-plc-tags{flex-wrap:wrap;gap:4px;display:flex}.m-plc-tags span{color:var(--text-muted);background:#ffffff0d;border-radius:4px;padding:2px 6px;font-size:.6rem}.m-plc-arrow{color:var(--text-muted);flex-shrink:0}.m-skills-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.m-skill-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:12px}.m-sc-top{align-items:center;gap:8px;margin-bottom:6px;display:flex}.m-sc-icon{font-size:.85rem}.m-sc-name{font-size:.85rem;font-weight:600}.m-sc-desc{color:var(--text-muted);height:2.8em;margin-bottom:8px;font-size:.65rem;line-height:1.4;overflow:hidden}.m-sc-bar{background:#ffffff0d;border-radius:2px;height:4px}.m-sc-fill{background:var(--accent-gradient);border-radius:2px;height:100%}.m-model-list{flex-direction:column;gap:14px;display:flex}.m-model-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;padding:16px}.m-mc-top{align-items:center;gap:12px;margin-bottom:10px;display:flex}.m-mc-emoji{border:1px solid;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.4rem;display:flex}.m-mc-meta{flex:1}.m-mc-type{text-transform:uppercase;font-size:.7rem;font-weight:700}.m-mc-meta h3{font-size:1rem;font-weight:700;font-family:var(--font-heading)}.m-model-card>p{color:var(--text-muted);margin-bottom:10px;font-size:.85rem;line-height:1.5}.m-mc-stat{color:var(--text-muted);background:#0003;border-radius:10px;align-items:center;gap:6px;margin-bottom:10px;padding:8px;font-size:.8rem;display:flex}.m-mc-stat strong{color:var(--text-main)}.m-mc-tags{flex-wrap:wrap;gap:6px;margin-bottom:0;display:flex}.m-mc-tags span{border:1px solid var(--border-color);color:var(--text-muted);background:#ffffff0d;border-radius:6px;padding:3px 8px;font-size:.7rem}.m-sub-filter-chips{margin-top:-4px}.m-model-workflow{margin-top:18px}.m-model-workflow h2{font-size:1.15rem;font-family:var(--font-heading);margin-bottom:12px;font-weight:800}.m-workflow-list{flex-direction:column;gap:10px;display:flex}.m-workflow-step{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:16px;gap:12px;padding:14px;display:flex}.m-workflow-step>span{width:34px;height:34px;color:var(--accent-primary);background:#3b82f61a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:800;display:flex}.m-workflow-step h3{margin:0 0 4px;font-size:.95rem;font-weight:800}.m-workflow-step p{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.55}.m-card{background:var(--bg-panel);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;margin-bottom:14px;padding:20px}.m-card h3{font-size:1.1rem;font-family:var(--font-heading);margin-bottom:14px;font-weight:700}.m-about-page{padding-bottom:88px}.m-about-header{padding-top:8px}.m-about-section-title{color:var(--text-main);align-items:center;gap:10px;margin-bottom:14px;display:flex}.m-about-section-title h3{font-size:1.1rem;font-family:var(--font-heading);margin:0;font-weight:700;line-height:1.25}.m-about-section-title>span:last-child:not(.m-about-section-icon){color:var(--accent-primary);white-space:nowrap;background:#3b82f61a;border:1px solid #3b82f62e;border-radius:999px;margin-left:auto;padding:4px 9px;font-size:.72rem;font-weight:700}.m-about-section-icon{width:32px;height:32px;color:var(--accent-primary);background:#3b82f61a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.m-about-profile-card .m-bio{margin-bottom:14px}.m-about-detail-list .m-detail-row{align-items:flex-start;gap:16px}.m-about-detail-list .m-detail-row span:last-child{text-align:right;overflow-wrap:anywhere;min-width:0}.m-about-projects-section{margin-bottom:14px}.m-about-projects-section>.m-about-section-title{padding:0 2px}.m-about-project-list{flex-direction:column;gap:12px;display:flex}.m-about-project-card{background:var(--bg-card);border:1px solid var(--border-color);color:inherit;border-radius:16px;grid-template-columns:96px minmax(0,1fr);align-items:stretch;gap:12px;padding:12px;text-decoration:none;transition:transform .2s,border-color .2s;display:grid}.m-about-project-card:active{border-color:var(--accent-primary);transform:scale(.985)}.m-about-project-media{background:#00000038;border-radius:12px;width:96px;min-height:96px;overflow:hidden}.m-about-project-media img,.m-about-project-fallback{object-fit:cover;justify-content:center;align-items:center;width:100%;height:100%;min-height:96px;display:flex}.m-about-project-content{flex-direction:column;gap:6px;min-width:0;display:flex}.m-about-project-content h4{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.95rem;font-weight:800;line-height:1.25;overflow:hidden}.m-about-project-content p{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.78rem;line-height:1.5;display:-webkit-box;overflow:hidden}.m-about-project-tags{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}.m-about-project-tags span{color:var(--text-muted);border:1px solid var(--border-color);text-overflow:ellipsis;white-space:nowrap;background:#ffffff0d;border-radius:6px;max-width:100%;padding:3px 7px;font-size:.66rem;overflow:hidden}.m-about-view-all{border:1px solid var(--border-color);color:var(--accent-primary);background:#ffffff0a;border-radius:14px;justify-content:center;align-items:center;gap:4px;margin-top:12px;padding:12px 14px;font-size:.86rem;font-weight:700;text-decoration:none;display:flex}.m-about-timeline .m-tl-title{line-height:1.45}.m-about-timeline .m-tag-sm{vertical-align:middle;margin-top:3px;display:inline-flex}.m-profile-card{text-align:center;background:var(--bg-panel);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:24px;margin-bottom:14px;padding:28px 20px}.m-avatar-wrap{background:var(--accent-gradient);border-radius:50%;width:100px;height:100px;margin:0 auto 14px;padding:4px}.m-avatar-wrap img{object-fit:cover;border:3px solid var(--bg-dark);border-radius:50%;width:100%;height:100%}.m-profile-card h1{font-size:1.6rem;font-family:var(--font-heading);margin-bottom:4px}.m-profile-tag{color:var(--accent-primary);background:#3b82f61f;border-radius:16px;margin-bottom:14px;padding:4px 14px;font-size:.8rem;font-weight:600;display:inline-block}.m-profile-info{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.m-profile-info span{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:.85rem;display:flex}.m-profile-socials{justify-content:center;gap:12px;display:flex}.m-profile-socials button{border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-muted);cursor:pointer;background:#ffffff0d;border-radius:10px;justify-content:center;align-items:center;display:flex}.m-bio{color:var(--text-muted);margin-bottom:16px;font-size:.9rem;line-height:1.7}.m-detail-list{flex-direction:column;display:flex}.m-detail-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;padding:10px 0;font-size:.85rem;display:flex}.m-detail-row:last-child{border-bottom:none}.m-detail-row span:first-child{color:var(--text-muted)}.m-detail-row span:last-child{font-weight:500}.m-collapse{border-bottom:1px solid var(--border-color)}.m-collapse:last-child{border-bottom:none}.m-collapse-head{width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:16px 20px;font-size:1rem;font-weight:600;display:flex}.m-collapse-icon{color:var(--accent-primary)}.m-collapse-body{padding:0 20px 20px}.m-timeline{border-left:2px solid #ffffff0f;flex-direction:column;gap:16px;padding-left:16px;display:flex;position:relative}.m-timeline-item{position:relative}.m-tl-dot{background:var(--bg-dark);border:3px solid var(--accent-primary);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-21px}.m-tl-date{color:var(--accent-primary);font-size:.8rem;font-weight:700;font-family:var(--font-heading);margin-bottom:2px}.m-tl-title{margin-bottom:2px;font-size:.95rem;font-weight:700}.m-tl-sub{color:var(--text-muted);font-size:.8rem}.m-degree-cn,.m-degree-en{display:block}.m-degree-cn{color:var(--text-main);font-weight:600}.m-degree-en{color:var(--text-muted);margin-top:3px;line-height:1.45}.m-tl-desc{color:var(--text-muted);margin-top:4px;font-size:.8rem;line-height:1.6}.m-tag-sm{color:var(--accent-primary);background:#3b82f61a;border-radius:4px;margin-left:6px;padding:2px 8px;font-size:.7rem;font-weight:600}.m-tl-tags{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.m-tl-tags span{color:var(--accent-primary);font-size:.75rem;font-weight:600}.m-achievement-text{color:var(--text-muted);white-space:pre-line;padding:0 4px;font-size:.85rem;line-height:1.8}.m-skill-bars{flex-direction:column;gap:12px;display:flex}.m-bar-item{flex-direction:column;gap:5px;display:flex}.m-bar-label{justify-content:flex-start;font-size:.85rem;font-weight:500;display:flex}.m-bar-track{background:#ffffff0d;border-radius:3px;height:6px;overflow:hidden}.m-bar-fill{background:var(--accent-gradient);border-radius:3px;height:100%}.m-cert-list{flex-direction:column;gap:12px;display:flex}.m-cert-item{border-bottom:1px solid #ffffff0d;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.m-cert-item:last-child{border-bottom:none}.m-cert-icon{border:1px solid var(--border-color);background:#ffffff0a;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.25rem;display:flex}.m-cert-info{min-width:0}.m-cert-name{overflow-wrap:anywhere;font-size:.9rem;font-weight:700;line-height:1.35}.m-cert-name .cert-name-main,.m-cert-name .cert-name-sub{display:block}.m-cert-name .cert-name-main{white-space:nowrap;overflow-wrap:normal;font-size:clamp(.74rem,3vw,.86rem)}.m-cert-name .cert-name-main-long{font-size:clamp(.66rem,2.7vw,.76rem)}.m-cert-name .cert-name-sub{color:var(--text-muted);margin-top:2px;font-size:.9em}.m-cert-issuer{color:var(--text-muted);overflow-wrap:anywhere;margin-top:3px;font-size:.76rem;line-height:1.45}.m-cert-date{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.m-interests-grid{flex-wrap:wrap;gap:8px;display:flex}.m-interest-chip{background:#3b82f614;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;display:flex}.m-contact-form{flex-direction:column;gap:14px;display:flex}.m-form-group{flex-direction:column;gap:4px;display:flex}.m-form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:700}.m-input-wrap{background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:10px;padding:0 14px;display:flex}.m-input-wrap svg{color:var(--accent-primary);opacity:.7;flex-shrink:0}.m-input-wrap input{height:44px;color:var(--text-main);background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.m-contact-form textarea{color:var(--text-main);resize:none;background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;outline:none;padding:12px 14px;font-family:inherit;font-size:.9rem;line-height:1.6}.m-quick-msgs{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.m-msg{gap:8px;display:flex}.m-msg img{border-radius:50%;flex-shrink:0;width:28px;height:28px}.m-msg .msg-avatar-container{border-radius:50%;flex-shrink:0;width:28px;height:28px;position:relative;overflow:hidden}.m-msg .msg-avatar-container img{object-fit:cover;width:100%;height:100%;transition:opacity .3s,transform .3s}.m-msg .msg-avatar-container img.hover-state{opacity:0;position:absolute;top:0;left:0}.m-msg .msg-avatar-container:hover img.default-state{opacity:0}.m-msg .msg-avatar-container:hover img.hover-state{opacity:1;transform:scale(1.08)}.m-msg-bubble{border:1px solid var(--border-color);color:var(--text-muted);background:#ffffff0d;border-radius:14px;padding:10px 14px;font-size:.85rem;line-height:1.5}.m-msg.user{justify-content:flex-end}.m-msg.user .m-msg-bubble{background:var(--accent-primary);color:#fff;border-color:#0000}.m-quick-chips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.m-quick-chips button{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:#ffffff0d;border-radius:10px;padding:7px 12px;font-size:.75rem}.m-quick-chips button:disabled{opacity:.55;cursor:not-allowed}.m-contact-captcha{border:1px solid var(--border-color);background:#ffffff0a;border-radius:14px;gap:10px;margin:10px 0 12px;padding:12px;display:grid}.m-contact-captcha-head{color:var(--accent-primary);align-items:center;gap:8px;font-size:.84rem;font-weight:800;display:flex}.m-contact-captcha label{color:var(--text-muted);gap:7px;font-size:.8rem;display:grid}.m-contact-captcha label span{color:var(--text-main);font-weight:700}.m-contact-captcha input{border:1px solid var(--border-color);height:38px;color:var(--text-main);font:inherit;background:#00000029;border-radius:10px;outline:none;padding:0 11px}.m-contact-captcha input:focus{border-color:var(--accent-primary)}.m-contact-captcha-actions{justify-content:flex-end;gap:8px;display:flex}.m-contact-captcha-actions button,.m-contact-captcha-start{border:1px solid var(--border-color);color:var(--text-main);background:#ffffff0f;border-radius:10px;padding:8px 11px;font-size:.78rem}.m-contact-captcha-actions button.primary{background:var(--accent-primary);color:#fff;border-color:#0000}.m-contact-captcha-actions button:disabled,.m-contact-captcha-start:disabled{opacity:.65}.m-contact-captcha p{color:#f87171;margin:0;font-size:.78rem;line-height:1.5}.m-chat-input{border:1px solid var(--border-color);background:#ffffff0d;border-radius:14px;align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.m-chat-input input{color:#fff;background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.m-send-btn{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.m-send-btn:disabled{opacity:.65;cursor:not-allowed}.m-social-row{justify-content:center;gap:16px;padding:16px 0;display:flex}.m-social-btn{border:1px solid var(--border-color);width:44px;height:44px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:flex}.m-back-btn{color:var(--text-muted);align-items:center;gap:4px;margin-bottom:16px;font-size:.9rem;text-decoration:none;display:inline-flex}.m-pd-hero{text-align:center;margin-bottom:16px}.m-pd-icon{border-radius:18px;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 14px;display:flex;box-shadow:0 8px 24px #0003}.m-pd-hero h1{font-size:1.5rem;font-family:var(--font-heading);margin-bottom:6px;font-weight:800}.m-pd-hero>p{color:var(--text-muted);margin-bottom:12px;font-size:.9rem;line-height:1.5}.m-pd-tags{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px;display:flex}.m-pd-tags span{border:1px solid var(--border-color);color:var(--text-muted);background:#ffffff0d;border-radius:8px;padding:5px 12px;font-size:.8rem}.m-pd-actions{flex-direction:column;gap:8px;display:flex}.m-status-tag{color:#10b981;background:#10b9811a;border-radius:6px;padding:2px 8px;font-size:.75rem;font-weight:600}.m-long-text{color:var(--text-muted);font-size:.9rem;line-height:1.8}.m-highlights{flex-direction:column;gap:12px;display:flex}.m-hl-item{align-items:flex-start;gap:12px;display:flex}.m-hl-icon{flex-shrink:0;margin-top:2px;font-size:1.6rem}.m-hl-item strong{margin-bottom:2px;font-size:.9rem;display:block}.m-hl-item p{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.5}.m-tech-section{margin-bottom:8px}.m-tech-head{width:100%;color:var(--text-main);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:10px 0;font-size:.9rem;font-weight:600;display:flex}.m-tech-chips{flex-wrap:wrap;gap:6px;padding:10px 0;display:flex}.m-results-strip{gap:8px;margin-bottom:16px;display:flex}.m-result-item{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:14px;flex:1;padding:12px 8px}.m-result-item strong{color:var(--accent-primary);font-size:1.1rem;font-weight:800;font-family:var(--font-heading);margin-bottom:2px;display:block}.m-result-item span{color:var(--text-muted);font-size:.65rem}@media (width<=768px){.m-app-content .assistant-page{grid-template-columns:1fr;height:calc(100dvh - 136px);min-height:0;max-height:none;padding:12px}.m-app-content .ast-left,.m-app-content .ast-right{display:none}.m-app-content .ast-main{border-radius:24px}.m-app-content .chat-messages{gap:12px;padding:16px}.m-app-content .msg-row{gap:9px;max-width:90%}.m-app-content .msg-row .msg-avatar-container{flex-basis:32px;width:32px;height:32px}.m-app-content .msg-bubble{border-radius:15px;padding:10px 12px}.m-app-content .msg-bubble h4{font-size:.68rem}.m-app-content .msg-bubble p{font-size:.9rem;line-height:1.6}.m-app-content .chat-input-area{padding:10px}.m-app-content .input-box{border-radius:16px;gap:8px;padding:6px 6px 6px 14px}.m-app-content .input-box input{font-size:.9rem}.m-app-content .mic-btn{border-radius:10px;flex-basis:36px;width:36px;height:36px}}:root{--text-secondary:var(--text-muted);--surface-soft:#ffffff0d;--surface-hover:#ffffff1a;--surface-active:#3b82f61f;--input-surface:#0000003d;--nav-surface:#0a0a0fcc;--nav-solid:#0a0a0ffa;--shadow-elevated:0 20px 45px #00000047;--focus-ring:#3b82f62e}:root[data-theme=light]{--bg-dark:#f5f7fb;--bg-darker:#e9eef6;--bg-panel:#ffffffc7;--bg-card:#ffffffeb;--text-main:#101828;--text-muted:#667085;--text-secondary:#667085;--accent-primary:#2563eb;--accent-secondary:#14b8a6;--accent-gradient:linear-gradient(135deg, #2563eb, #14b8a6);--border-color:#0f172a1f;--glass-shadow:0 18px 45px #0f172a1a;--surface-soft:#0f172a0a;--surface-hover:#0f172a12;--surface-active:#2563eb1a;--input-surface:#ffffffbd;--nav-surface:#ffffffdb;--nav-solid:#fffffff5;--shadow-elevated:0 18px 42px #0f172a1f;--focus-ring:#2563eb29}html,body,#root{min-height:100%}body{transition:background-color .25s,color .25s}body[data-theme=light]{background-color:var(--bg-dark);background-image:linear-gradient(#f8fbff 0%,#eef5ff 42%,#f7fafc 100%)}.app-wrapper{min-height:100vh;color:var(--text-main)}.theme-toggle{border:1px solid #0000;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.theme-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.m-theme-toggle{flex-shrink:0;width:36px;height:36px}[data-theme=light] .navbar,[data-theme=light] .m-topbar,[data-theme=light] .m-bottom-nav{background:var(--nav-surface);box-shadow:0 10px 32px #0f172a14}[data-theme=light] .nav-menu{background:0 0}@media (width<=768px){[data-theme=light] .nav-menu{background:var(--nav-solid);box-shadow:0 20px 44px #0f172a1f}}[data-theme=light] .theme-toggle,[data-theme=light] .btn-secondary,[data-theme=light] .scroll-top,[data-theme=light] .project-tag,[data-theme=light] .skill-tag,[data-theme=light] .feature-item,[data-theme=light] .filter-tab,[data-theme=light] .project-card-tags .tag,[data-theme=light] .cat-list .count,[data-theme=light] .skill-icon-box,[data-theme=light] .profile-social button,[data-theme=light] .dl-btn,[data-theme=light] .hl-card,[data-theme=light] .acc-item.active,[data-theme=light] .model-icon-wrapper,[data-theme=light] .model-tag,[data-theme=light] .chat-suggestions button,[data-theme=light] .pd-tags span,[data-theme=light] .control-icon-btn,[data-theme=light] .call-circle-btn,[data-theme=light] .mini-transcript p{background:var(--surface-soft);border-color:var(--border-color);color:var(--text-main)}[data-theme=light] .theme-toggle:hover,[data-theme=light] .btn-secondary:hover,[data-theme=light] .scroll-top:hover,[data-theme=light] .feature-item:hover,[data-theme=light] .call-circle-btn:hover{background:var(--surface-hover);color:var(--text-main)}[data-theme=light] .contact-btn,[data-theme=light] .btn-primary,[data-theme=light] .filter-tab.active,[data-theme=light] .m-chip.active,[data-theme=light] .m-btn-primary,[data-theme=light] .m-send-btn,[data-theme=light] .chat-send-btn,[data-theme=light] .chat-send-btn-alt,[data-theme=light] .send-btn,[data-theme=light] .btn-submit-contact,[data-theme=light] .call-primary-btn{color:#fff}[data-theme=light] .project-card,[data-theme=light] .project-card-full,[data-theme=light] .assistant-panel,[data-theme=light] .ast-main,[data-theme=light] .contact-card,[data-theme=light] .chat-card,[data-theme=light] .pd-hero-card,[data-theme=light] .pd-section,[data-theme=light] .sidebar-block,[data-theme=light] .model-card,[data-theme=light] .env-info,[data-theme=light] .profile-card,[data-theme=light] .info-section,[data-theme=light] .download-section,[data-theme=light] .section-card,[data-theme=light] .skills-card,[data-theme=light] .certs-card,[data-theme=light] .interests-card,[data-theme=light] .m-card,[data-theme=light] .m-profile-card,[data-theme=light] .m-project-card,[data-theme=light] .m-project-list-card,[data-theme=light] .m-skill-card,[data-theme=light] .m-model-card,[data-theme=light] .m-stat-item,[data-theme=light] .m-result-item,[data-theme=light] .m-assistant-cta{box-shadow:var(--glass-shadow)}[data-theme=light] .project-card:hover,[data-theme=light] .project-card-full:hover,[data-theme=light] .model-card:hover{box-shadow:var(--shadow-elevated);background:#fffffff5;border-color:#2563eb3d}[data-theme=light] .captcha-modal-backdrop{background:#0f172a47}[data-theme=light] .captcha-dialog{box-shadow:var(--shadow-elevated);background:#fffffffa}[data-theme=light] .captcha-icon{background:#3b82f61a}[data-theme=light] .captcha-close{background:#0f172a0a}[data-theme=light] .captcha-close:hover{background:#0f172a14}[data-theme=light] .captcha-error{color:#b91c1c;background:#fee2e2e0;border-color:#f8717161}[data-theme=light] .pdf-progress-backdrop{background:#0f172a47}[data-theme=light] .pdf-progress-modal{color:var(--text-main);box-shadow:var(--shadow-elevated);background:#fffffffa}[data-theme=light] .pdf-progress-heading h3,[data-theme=light] .pdf-progress-meta span:first-child{color:var(--text-main)}[data-theme=light] .pdf-progress-spinner{background:#fff}[data-theme=light] .pdf-progress-track{background:#0f172a14}[data-theme=light] .resume-email-backdrop{background:#0f172a47}[data-theme=light] .resume-email-dialog{color:var(--text-main);box-shadow:var(--shadow-elevated);background:#fffffffa}[data-theme=light] .resume-email-heading h3,[data-theme=light] .resume-email-close:hover,[data-theme=light] .resume-email-cancel{color:var(--text-main)}[data-theme=light] .resume-email-close,[data-theme=light] .resume-email-cancel,[data-theme=light] .resume-email-field input{background:var(--surface-soft);border-color:var(--border-color)}[data-theme=light] .resume-email-close:hover,[data-theme=light] .resume-email-cancel:hover{background:var(--surface-hover)}[data-theme=light] .resume-email-field input{color:var(--text-main)}[data-theme=light] .search-box,[data-theme=light] .search-input,[data-theme=light] .chat-input-wrapper,[data-theme=light] .input-box,[data-theme=light] .captcha-form input,[data-theme=light] .form-group input,[data-theme=light] .form-group textarea,[data-theme=light] .input-wrapper-alt,[data-theme=light] .chat-input-wrapper-alt,[data-theme=light] .m-search-bar,[data-theme=light] .m-input-wrap,[data-theme=light] .m-contact-form textarea,[data-theme=light] .m-chat-input{background:var(--input-surface);border-color:var(--border-color)}[data-theme=light] input,[data-theme=light] textarea,[data-theme=light] .chat-input,[data-theme=light] .search-box input,[data-theme=light] .input-box input,[data-theme=light] .captcha-form input,[data-theme=light] .m-search-bar input,[data-theme=light] .m-chat-input input{color:var(--text-main)}[data-theme=light] input::placeholder,[data-theme=light] textarea::placeholder{color:#4755698f}[data-theme=light] .project-tags span,[data-theme=light] .tech-tags span,[data-theme=light] .m-project-tags span,[data-theme=light] .m-skill-chip,[data-theme=light] .m-chip,[data-theme=light] .m-plc-tags span,[data-theme=light] .m-mc-tags span,[data-theme=light] .m-profile-socials button,[data-theme=light] .m-quick-chips button,[data-theme=light] .m-msg-bubble,[data-theme=light] .m-pd-tags span,[data-theme=light] .m-btn-outline,[data-theme=light] .social-item,[data-theme=light] .pd-tags span,[data-theme=light] .model-stats-row{background:var(--surface-soft);border-color:var(--border-color)}[data-theme=light] .filter-tab.active,[data-theme=light] .m-chip.active,[data-theme=light] .cat-list li.active{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#2563ebad;box-shadow:0 10px 22px #2563eb38}[data-theme=light] .filter-tab.active:hover,[data-theme=light] .m-chip.active:hover,[data-theme=light] .cat-list li.active:hover{color:#fff;background:linear-gradient(135deg,#1d4ed8,#1e40af)}[data-theme=light] .progress-bar-wrapper,[data-theme=light] .m-sc-bar,[data-theme=light] .m-bar-track{background:#0f172a14}[data-theme=light] .chat-body,[data-theme=light] .chat-body-alt,[data-theme=light] .ast-status,[data-theme=light] .model-stats-row,[data-theme=light] .m-mc-stat,[data-theme=light] .wechat-contact{background:#0f172a0a}[data-theme=light] .chat-divider span{background:#ffffffeb}[data-theme=light] .received .message-content,[data-theme=light] .message.received .message-content,[data-theme=light] .bot-msg .msg-bubble{border-color:var(--border-color);color:var(--text-main);background:#ffffffd1}[data-theme=light] .sent .message-content,[data-theme=light] .message.sent .message-content,[data-theme=light] .user-msg .msg-bubble,[data-theme=light] .mini-transcript p.from-user{background:var(--surface-active);color:#1d4ed8}[data-theme=light] .user-msg .msg-bubble h4,[data-theme=light] .user-msg .msg-bubble p{color:#1d4ed8}[data-theme=light] .chat-input-area{background:#ffffffb8}[data-theme=light] .chat-interface{background:linear-gradient(#ffffff6b,#ffffffeb)}[data-theme=light] .live-call-panel{background:linear-gradient(160deg,#eff6fff5,#f0fdfaf2)}[data-theme=light] .video-call-panel{background:linear-gradient(160deg,#ecfdf5f5,#eff6fff2)}[data-theme=light] .live-call-panel:before{background-image:linear-gradient(#2563eb14 1px,#0000 1px),linear-gradient(90deg,#2563eb14 1px,#0000 1px)}[data-theme=light] .call-pill{border-color:var(--border-color);color:var(--text-muted);background:#ffffffa3}[data-theme=light] .call-pill.online{color:#047857;background:#10b9811f;border-color:#10b98147}[data-theme=light] .call-pill.connecting{color:#b45309;background:#f59e0b21;border-color:#f59e0b52}[data-theme=light] .orb-ring{border-color:#2563eb2e}[data-theme=light] .orbital-avatar img{border-color:#fffffff5;box-shadow:0 28px 70px #0f172a2e,0 0 45px #2563eb2e}[data-theme=light] .self-video-preview{background:#e2e8f0;border-color:#0f172a24;box-shadow:0 18px 40px #0f172a2e}[data-theme=light] .live-caption{border-color:var(--border-color);color:var(--text-main);background:#ffffffbd}[data-theme=light] .call-circle-btn{color:var(--text-main)}[data-theme=light] .call-circle-btn.muted{color:#b45309;background:#f59e0b29}[data-theme=light] .call-primary-btn.hangup{color:#fff}[data-theme=light] .timeline-dot,[data-theme=light] .step-num,[data-theme=light] .m-tl-dot{background:var(--bg-dark)}[data-theme=light] .code-block{color:#1d4ed8}[data-theme=light] .skill-code-right,[data-theme=light] .m-terminal,[data-theme=light] .terminal-window{box-shadow:0 18px 42px #0f172a24}[data-theme=light] .m-bottom-nav{border-top-color:var(--border-color)}[data-theme=light] .m-topbar{border-bottom-color:var(--border-color)}
