@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@300;400;500;600&family=Geist:wght@300;400;500;600;700;800&display=swap";:root{--bg:#09090b;--fg:#f4f4f5;--muted:#a1a1aa;--border:#ffffff14;--border-strong:#ffffff26;--accent:#fff;--accent-inverse:#000;--highlight:#3b82f6;--card-bg:#14141766;--card-hover:#1c1c20b3;--nav-bg:#09090bcc;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Roboto Mono, monospace}[data-theme=light]{--bg:#fafafa;--fg:#18181b;--muted:#71717a;--border:#00000014;--border-strong:#00000026;--accent:#000;--accent-inverse:#fff;--highlight:#2563eb;--card-bg:#f4f4f599;--card-hover:#e4e4e7e6;--nav-bg:#fafafacc}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg);color:var(--fg);font-family:var(--font-sans);letter-spacing:-.01em;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6;transition:background-color .25s,color .25s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.portfolio-app{flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.content-container{flex-grow:1;width:100%;max-width:1100px;margin:0 auto;padding:0 24px}.noise-overlay{z-index:-2;opacity:.02;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3联%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");position:fixed;inset:0}.mesh-gradient{z-index:-1;pointer-events:none;background:radial-gradient(circle,#3b82f60a 0%,#0000 70%);width:600px;height:600px;position:fixed;top:-100px;right:-50px}.navbar{z-index:100;background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);width:100%;transition:background-color .25s;position:fixed;top:0;left:0}.scroll-progress-bar{z-index:999;pointer-events:none;background:0 0;width:100%;height:3px;position:fixed;top:0;left:0}.scroll-progress-fill{background:linear-gradient(90deg, var(--highlight), #a855f7, #ec4899);height:100%;box-shadow:0 0 8px var(--highlight), 0 0 16px var(--highlight-glow);border-radius:0 2px 2px 0;transition:width 80ms linear}.nav-container{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:20px 24px;display:flex}.logo{letter-spacing:-.03em;color:var(--fg);cursor:pointer;font-size:17px;font-weight:700}.logo span{color:var(--muted);font-weight:400}.nav-links{gap:8px;display:flex}.nav-item{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 12px;font-size:11px;font-weight:500;transition:all .2s}.nav-item:hover,.nav-item.active{color:var(--fg);background:var(--card-bg)}.nav-right{align-items:center;display:flex}.theme-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.theme-toggle:hover{color:var(--fg);background:var(--card-bg)}.theme-toggle .icon{width:16px;height:16px}.theme-icon-wrap{justify-content:center;align-items:center;display:flex}.theme-glow{box-shadow:0 0 0 6px var(--highlight-glow), 0 0 18px var(--highlight-glow);border-radius:50%;transition:box-shadow .6s,color .3s;color:var(--highlight)!important}section{flex-direction:column;justify-content:center;min-height:80vh;padding:100px 0;display:flex}.section-block{border-top:1px solid var(--border);padding:80px 0}.section-head{margin-bottom:48px}.section-num{font-family:var(--font-mono);color:var(--muted);letter-spacing:.1em;margin-bottom:8px;font-size:11px;font-weight:600;display:block}.section-head h2{letter-spacing:-.03em;color:var(--fg);font-size:28px;font-weight:700}.hero-section{grid-template-columns:1.2fr .8fr;align-items:center;gap:40px;min-height:100vh;padding-top:120px;display:grid}.hero-content{flex-direction:column;align-items:flex-start;display:flex}.hero-meta{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:8px;margin-bottom:24px;font-size:11px;display:flex}.location-tag{font-weight:500}.dot-sep{color:var(--border-strong)}.status-badge{color:var(--highlight);background:#3b82f614;border-radius:4px;padding:2px 8px}.hero-content h1{letter-spacing:-.04em;color:var(--fg);margin-bottom:20px;font-size:48px;font-weight:800;line-height:1.1}.highlight-text{background:linear-gradient(to right, var(--fg) 50%, var(--muted) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-lead{color:var(--muted);max-width:520px;margin-bottom:36px;font-size:17px;line-height:1.6}.hero-actions{gap:12px;display:flex}.btn{font-family:var(--font-sans);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-inverse);border:1px solid var(--accent)}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{color:var(--fg);border:1px solid var(--border);background:0 0}.btn-secondary:hover{background:var(--card-bg);border-color:var(--border-strong);transform:translateY(-1px)}.hero-graphic{justify-content:flex-end;display:flex}.profile-image-container{aspect-ratio:1;border:1px solid var(--border);background:var(--card-bg);border-radius:20px;width:100%;max-width:320px;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 20px 40px #0000004d}.profile-image-container:hover{border-color:var(--highlight);box-shadow:0 25px 50px #0006, 0 0 40px var(--highlight-glow);transform:translateY(-8px)scale(1.02)}[data-theme=light] .profile-image-container{box-shadow:0 20px 40px #0000000d}[data-theme=light] .profile-image-container:hover{box-shadow:0 25px 50px #0000001a, 0 0 30px var(--highlight-glow)}.profile-img{object-fit:cover;width:100%;height:100%;transition:transform .4s cubic-bezier(.16,1,.3,1)}.profile-image-container:hover .profile-img{transform:scale(1.05)}.tech-slate{border:1px solid var(--border);background:#121214;border-radius:8px;width:100%;max-width:320px;transition:all .3s;overflow:hidden;box-shadow:0 20px 40px #0000004d}.tech-slate.unified-card{max-width:380px}.unified-card .slate-content{padding:24px;font-size:12.5px}[data-theme=light] .tech-slate{background:#f4f4f5}.tech-slate:hover{border-color:var(--highlight);box-shadow:0 25px 50px #0006, 0 0 30px var(--highlight-glow);transform:translateY(-4px)}.unified-content{flex-direction:column;align-items:center;gap:20px;display:flex}.mini-profile{border:2px solid var(--border);border-radius:50%;flex-shrink:0;width:220px;height:220px;transition:all .3s;overflow:hidden;box-shadow:0 8px 24px #0003}.mini-profile:hover{border-color:var(--highlight);transform:scale(1.03)}.code-divider{background:var(--border);width:100%;height:1px;margin:4px 0}.code-details{text-align:left;width:100%}.slate-bar{border-bottom:1px solid var(--border);gap:6px;padding:12px;display:flex}.s-dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.slate-content{font-family:var(--font-mono);color:#a1a1aa;padding:24px;font-size:12px}[data-theme=light] .slate-content{color:#52525b}.code-line{margin-bottom:6px}.code-line.indent{padding-left:20px}.c-key{color:#f43f5e}.c-prop{color:#3b82f6}.c-val{color:#10b981}.project-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.project-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;padding:28px;transition:all .2s;display:flex}.project-card:hover{background:var(--card-hover);border-color:var(--border-strong);transform:translateY(-2px)}.card-top{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-subtitle{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.live-link{color:var(--fg);align-items:center;gap:4px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.live-link:hover{opacity:.8}.icon.sm{width:12px;height:12px}.project-card h3{letter-spacing:-.02em;color:var(--fg);margin-bottom:12px;font-size:20px;font-weight:600}.card-desc{color:var(--muted);flex-grow:1;margin-bottom:24px;font-size:14px;line-height:1.6}.card-tech{flex-wrap:wrap;gap:6px;display:flex}.tech-pill{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);background:#ffffff0a;border-radius:4px;padding:3px 8px;font-size:10px}[data-theme=light] .tech-pill{background:#00000008}.experience-timeline{flex-direction:column;gap:40px;display:flex}.timeline-item{border-bottom:1px solid var(--border);grid-template-columns:.3fr .7fr;gap:24px;padding-bottom:32px;display:grid}.timeline-item:last-child{border-bottom:none;padding-bottom:0}.time-meta{flex-direction:column;gap:4px;display:flex}.duration{font-family:var(--font-mono);color:var(--fg);font-size:12px;font-weight:600}.company{color:var(--muted);font-size:13px}.time-content h3{margin-bottom:12px;font-size:18px;font-weight:600}.details-list{color:var(--muted);padding-left:18px;font-size:14.5px;list-style-type:square}.details-list li{margin-bottom:8px}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.skill-card{border:1px solid var(--border);background:var(--card-bg);border-radius:6px;flex-direction:column;gap:4px;padding:16px 20px;display:flex}.skill-card:hover{border-color:var(--border-strong)}.skill-cat{font-family:var(--font-mono);text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:10px}.skill-name{color:var(--fg);font-size:14px;font-weight:500}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}.contact-pitch{color:var(--muted);max-width:440px;margin-bottom:32px;font-size:15px}.channels{flex-direction:column;gap:16px;margin-bottom:40px;display:flex}.channel-link{color:var(--fg);align-items:center;gap:12px;font-size:14px;text-decoration:none;transition:opacity .2s;display:flex}.channel-link:hover{opacity:.8}.channel-link.location{color:var(--muted);cursor:default}.channel-link .icon{width:16px;height:16px;color:var(--muted)}.social-links{gap:16px;display:flex}.social-links a{color:var(--muted);transition:color .2s}.social-links a:hover{color:var(--fg)}.social-links .icon{width:20px;height:20px}.contact-form{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:32px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-group{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.form-group label{font-family:var(--font-mono);text-transform:uppercase;color:var(--muted);font-size:10px}.form-group input,.form-group textarea{background:var(--bg);border:1px solid var(--border);color:var(--fg);font-family:var(--font-sans);border-radius:4px;outline:none;padding:10px 14px;font-size:14px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--fg)}.submit-btn{justify-content:center;width:100%}.status-msg{text-align:center;margin-top:12px;font-size:13px}.success-msg{color:#10b981}.error-msg{color:#ef4444}.footer{border-top:1px solid var(--border);background:var(--bg);padding:40px 0}.footer-content{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:0 24px;display:flex}.footer p{color:var(--muted);font-size:12px}@media (width<=868px){.hero-section{text-align:center;grid-template-columns:1fr;padding-top:160px}.hero-content{align-items:center}.hero-meta,.hero-graphic{justify-content:center}.timeline-item{grid-template-columns:1fr;gap:8px}.contact-grid{grid-template-columns:1fr;gap:40px}}.hamburger-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:none}.hamburger-btn:hover{color:var(--fg);background:var(--card-bg)}.hamburger-btn .icon{width:18px;height:18px}@media (width<=600px){.hamburger-btn{display:flex}.nav-links{background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;gap:4px;width:100%;padding:16px 24px;display:none;position:absolute;top:68px;left:0;box-shadow:0 10px 20px #0000001a}.nav-links.mobile-open{display:flex}.nav-item{text-align:left;width:100%;padding:10px 16px}.nav-cv-btn,.cmd-btn{display:none!important}.form-row{grid-template-columns:1fr}.footer-content{text-align:center;flex-direction:column;gap:12px}}.cmd-btn{background:var(--card-bg);border:1px solid var(--border);cursor:pointer;color:var(--muted);font-family:var(--font-mono);border-radius:4px;justify-content:center;align-items:center;padding:6px 10px;font-size:11px;transition:all .2s;display:flex}.cmd-btn:hover{color:var(--fg);border-color:var(--border-strong);background:var(--card-hover)}.cmd-key{font-weight:600}.command-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0006;justify-content:center;align-items:flex-start;padding-top:14vh;display:flex;position:fixed;inset:0}.command-dialog{border:1px solid var(--border-strong);background:#18181b;border-radius:8px;flex-direction:column;width:100%;max-width:500px;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000080}[data-theme=light] .command-dialog{background:#fff;box-shadow:0 20px 40px #0000001a}.command-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 18px;display:flex}.command-header input{color:var(--fg);font-family:var(--font-sans);background:0 0;border:none;outline:none;flex-grow:1;font-size:14px}.esc-tag{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);border-radius:3px;padding:2px 6px;font-size:10px}.command-list{max-height:280px;padding:8px;overflow-y:auto}.command-item{cursor:pointer;color:var(--muted);border-radius:6px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13.5px;transition:all .15s;display:flex}.command-item.selected{color:var(--fg);background:#ffffff0f}[data-theme=light] .command-item.selected{background:#0000000d}.command-item kbd{font-family:var(--font-mono);border:1px solid var(--border);background:#0003;border-radius:3px;padding:1px 5px;font-size:10px}.command-no-results{text-align:center;color:var(--muted);padding:16px;font-size:13px}.command-footer{border-top:1px solid var(--border);color:var(--muted);padding:10px 18px;font-size:10.5px}.command-footer kbd{font-family:var(--font-mono);background:#0000001a;border-radius:2px;padding:1px 4px}.pdf-resume-layout{display:none}@media print{.portfolio-app,#root>:not(.pdf-resume-layout){display:none!important}body,html{width:210mm;height:297mm;color:#000!important;background:#fff!important;margin:0!important;padding:0!important;font-family:Arial,Helvetica,sans-serif!important;font-size:11px!important;line-height:1.4!important}.pdf-resume-layout{box-sizing:border-box;color:#000!important;background:#fff!important;padding:20mm 15mm!important;display:block!important}.resume-header{text-align:center;margin-bottom:16px}.resume-name{letter-spacing:-.5px;margin-bottom:2px;font-size:26px;font-weight:700;color:#000!important}.resume-location{margin-bottom:4px;font-size:11px;color:#3f3f46!important}.resume-contact{justify-content:center;gap:12px;font-size:10px;display:flex;color:#000!important}.resume-contact span{font-weight:500}.resume-section{margin-bottom:16px}.resume-section h3{letter-spacing:.5px;margin-bottom:2px;font-size:12px;font-weight:700;color:#000!important}.resume-hr{width:100%;margin-bottom:8px;border-top:1px solid #18181b!important}.resume-item{margin-bottom:8px}.resume-row{justify-content:space-between;margin-bottom:2px;font-size:11px;display:flex}.resume-row strong{font-weight:600}.resume-desc{margin-bottom:2px;font-size:11px;font-style:italic;color:#27272a!important}.resume-bullets{margin-top:2px;padding-left:16px;list-style-type:disc}.resume-bullets li{margin-bottom:2px;font-size:10.5px;line-height:1.35;color:#000!important}.resume-skills-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.resume-skills-grid div{flex-direction:column;gap:3px;display:flex}.resume-skills-grid span{font-size:10.5px;color:#000!important}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translate(0,0)}}@keyframes pulseGradient{0%{opacity:.04;transform:translate(0,0)scale(1)}50%{opacity:.07;transform:translate(30px,-20px)scale(1.1)}to{opacity:.04;transform:translate(0,0)scale(1)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.mesh-gradient{animation:12s ease-in-out infinite pulseGradient}.reveal{opacity:0;will-change:transform, opacity;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.reveal.active{opacity:1;transform:translate(0,0)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-400{transition-delay:.4s}.delay-500{transition-delay:.5s}.hero-content h1{animation:.8s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.hero-meta,.hero-lead,.hero-actions{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.hero-meta{animation-delay:.1s}.hero-lead{animation-delay:.2s}.hero-actions{animation-delay:.3s}.hero-graphic{opacity:0;animation:1s cubic-bezier(.16,1,.3,1) .4s forwards fadeInUp}.tech-slate{animation:6s ease-in-out infinite float}.nav-item{position:relative}.nav-item:after{content:"";background-color:var(--highlight);transform-origin:100%;height:2px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:0;left:12px;right:12px;transform:scaleX(0)}.nav-item:hover:after,.nav-item.active:after{transform-origin:0;transform:scaleX(1)}.project-card,.skill-card,.timeline-item{transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s cubic-bezier(.16,1,.3,1),background-color .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1)}.project-card:hover{border-color:var(--highlight);transform:translateY(-6px)scale(1.02);box-shadow:0 12px 30px #00000040}[data-theme=light] .project-card:hover{box-shadow:0 12px 30px #0000000d}.skill-card:hover{border-color:var(--highlight);transform:translateY(-4px);box-shadow:0 8px 20px #00000026}.status-badge{align-items:center;gap:6px;display:inline-flex}.status-badge:before{content:"";background-color:var(--highlight);border-radius:50%;width:6px;height:6px;animation:2s infinite pulseDot;box-shadow:0 0 #3b82f6b3}@keyframes pulseDot{0%{transform:scale(.95);box-shadow:0 0 #3b82f6b3}70%{transform:scale(1);box-shadow:0 0 0 6px #3b82f600}to{transform:scale(.95);box-shadow:0 0 #3b82f600}}.portfolio-app:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(600px circle at var(--mouse-x,0px) var(--mouse-y,0px), var(--highlight-glow,#3b82f60a), transparent 80%);transition:background .3s;position:fixed;inset:0}.accent-customizer{z-index:1000;flex-direction:column;align-items:flex-end;display:flex;position:fixed;bottom:24px;right:24px}.customizer-toggle{background:var(--card-bg);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:0 4px 12px #00000026}.customizer-toggle:hover{color:var(--fg);border-color:var(--highlight);transform:rotate(30deg)}.customizer-toggle .icon{width:20px;height:20px}.customizer-panel{background:var(--nav-bg);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);opacity:0;transform-origin:100% 100%;pointer-events:none;border-radius:12px;width:200px;margin-bottom:12px;padding:16px;transition:all .3s cubic-bezier(.16,1,.3,1);transform:scale(.9)translateY(10px);box-shadow:0 10px 30px #0003}.accent-customizer.open .customizer-panel{opacity:1;pointer-events:auto;transform:scale(1)translateY(0)}.customizer-panel h4{font-size:10px;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-weight:600}.accent-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.accent-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;transition:transform .2s,border-color .2s}.accent-btn:hover{transform:scale(1.15)}.accent-btn.active{border-color:var(--fg);transform:scale(1.1)}.faq-container{flex-direction:column;gap:16px;max-width:800px;margin:0 auto;display:flex}.faq-item{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;transition:all .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.faq-item:hover{border-color:var(--highlight);background:var(--card-hover)}.faq-question{text-align:left;width:100%;color:var(--fg);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:20px 24px;font-size:16px;font-weight:500;display:flex}.faq-icon{color:var(--muted);transition:transform .3s cubic-bezier(.16,1,.3,1)}.faq-icon .icon{width:18px;height:18px}.faq-item.active .faq-icon{color:var(--highlight);transform:rotate(180deg)}.faq-answer{max-height:0;padding:0 24px;transition:max-height .3s cubic-bezier(.16,1,.3,1),padding .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.faq-item.active .faq-answer{max-height:200px;padding-bottom:20px}.faq-answer p{color:var(--muted);font-size:14.5px;line-height:1.6}.filter-bar{justify-content:center;gap:12px;margin-bottom:40px;display:flex}.filter-btn{background:var(--card-bg);border:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border-radius:20px;padding:8px 16px;font-size:11px;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1)}.filter-btn:hover{color:var(--fg);border-color:var(--border-strong)}.filter-btn.active{background:var(--accent);color:var(--accent-inverse);border-color:var(--accent);box-shadow:0 4px 15px var(--highlight-glow)}.services-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;display:grid}.service-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:flex-start;padding:32px 28px;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex}.service-card:hover{background:var(--card-hover);border-color:var(--highlight);transform:translateY(-4px);box-shadow:0 10px 30px #0003}[data-theme=light] .service-card:hover{box-shadow:0 10px 30px #00000008}.service-icon-box{border:1px solid var(--border);color:var(--highlight);background:#ffffff0a;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:24px;transition:all .3s;display:flex}[data-theme=light] .service-icon-box{background:#00000008}.service-card:hover .service-icon-box{background:var(--highlight);color:var(--accent-inverse);border-color:var(--highlight)}.service-icon-box .icon{width:22px;height:22px}.service-card h3{letter-spacing:-.02em;color:var(--fg);margin-bottom:12px;font-size:18px;font-weight:600}.service-desc{color:var(--muted);flex-grow:1;margin-bottom:20px;font-size:14px;line-height:1.6}.service-metric{font-family:var(--font-mono);color:var(--highlight);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.testimonials-carousel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;max-width:800px;margin:0 auto;padding:60px 80px;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000001a}[data-theme=light] .testimonials-carousel{box-shadow:0 10px 30px #00000005}.testimonial-track-wrapper{min-height:180px;position:relative}.testimonial-slide{opacity:0;pointer-events:none;text-align:center;flex-direction:column;align-items:center;width:100%;transition:all .5s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;left:0;transform:translateY(15px)}.testimonial-slide.active{opacity:1;pointer-events:auto;position:relative;transform:translateY(0)}.quote-mark{color:var(--highlight);opacity:.3;height:30px;margin-bottom:8px;font-family:Georgia,serif;font-size:64px;line-height:1}.quote-text{color:var(--fg);max-width:640px;margin-bottom:28px;font-size:16px;font-style:italic;line-height:1.7}.author-meta{flex-direction:column;gap:4px;display:flex}.author-name{color:var(--fg);font-size:15px;font-weight:600}.author-role{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.carousel-nav-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#ffffff05;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav-btn:hover{background:var(--card-hover);color:var(--fg);border-color:var(--highlight)}.carousel-nav-btn.prev{left:20px}.carousel-nav-btn.next{right:20px}.carousel-nav-btn .icon{width:18px;height:18px}.carousel-indicators{justify-content:center;gap:8px;margin-top:32px;display:flex}.indicator-dot{background:var(--border-strong);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:all .3s}.indicator-dot.active{background:var(--highlight);border-radius:4px;width:20px}@media (width<=768px){.testimonials-carousel{padding:48px 24px}.carousel-nav-btn{display:none}}.preloader{z-index:9999;background:#0a0a0c;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .5s,visibility .5s;display:flex;position:fixed;top:0;left:0}[data-theme=light] .preloader{background:#fafafa}.preloader-content{flex-direction:column;align-items:center;gap:24px;display:flex}.preloader-text{font-family:var(--font-mono);letter-spacing:.25em;filter:drop-shadow(0 0 10px var(--highlight-glow));gap:8px;font-size:32px;font-weight:800;display:flex}.preloader-text .char{background:linear-gradient(135deg, var(--highlight), #a855f7, #ec4899, var(--highlight));-webkit-text-fill-color:transparent;background-size:300% 300%;-webkit-background-clip:text;animation:4s infinite shimmer,1.2s ease-in-out infinite text-bounce;display:inline-block;position:relative}.preloader-text .char:first-child{animation-delay:.1s}.preloader-text .char:nth-child(2){animation-delay:.2s}.preloader-text .char:nth-child(3){animation-delay:.3s}.preloader-text .char:nth-child(4){animation-delay:.4s}.preloader-text .char:nth-child(5){animation-delay:.5s}.preloader-text .char:nth-child(6){animation-delay:.6s}@keyframes shimmer{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes text-bounce{0%,to{opacity:.7;top:0}50%{opacity:1;top:-18px}}.typewriter-text{color:var(--highlight);border-bottom:2px solid var(--highlight-glow);padding-bottom:2px;font-weight:600}.typewriter-caret{color:var(--highlight);margin-left:2px;font-weight:100;animation:.8s step-end infinite caret-blink}@keyframes caret-blink{0%,to{color:#0000}50%{color:var(--highlight)}}.project-card.clickable{cursor:pointer;padding-bottom:56px;position:relative}.view-case-study{font-family:var(--font-mono);color:var(--highlight);text-transform:uppercase;letter-spacing:.05em;opacity:.7;font-size:11px;font-weight:500;transition:all .3s;position:absolute;bottom:24px;left:24px}.project-card:hover .view-case-study{opacity:1;transform:translate(4px)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0a0a0ccc;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}[data-theme=light] .modal-overlay{background:#fafafcd9}.modal-content{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;width:90%;max-width:680px;max-height:90vh;padding:40px;position:relative;overflow-y:auto;box-shadow:0 20px 50px #0006}[data-theme=light] .modal-content{box-shadow:0 20px 50px #0000000f}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .2s;position:absolute;top:24px;right:24px}.modal-close:hover{color:var(--fg)}.modal-close .icon{width:24px;height:24px}.modal-subtitle{font-family:var(--font-mono);color:var(--highlight);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;display:block}.modal-content h3{letter-spacing:-.02em;color:var(--fg);margin-bottom:28px;font-size:26px;font-weight:700}.modal-body{flex-direction:column;gap:28px;display:flex}.modal-section h4{font-family:var(--font-mono);color:var(--highlight);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:12px}.modal-section p{color:var(--muted);font-size:14.5px;line-height:1.6}.architecture-flow{border:1px solid var(--border);background:#ffffff05;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;padding:20px;display:flex}[data-theme=light] .architecture-flow{background:#00000005}.architecture-node{background:var(--card-hover);border:1px solid var(--border-strong);border-radius:6px;align-items:center;gap:8px;padding:8px 14px;display:flex}.node-num{font-family:var(--font-mono);color:var(--highlight);font-size:11px;font-weight:700}.node-text{color:var(--fg);font-size:12.5px;font-weight:500}.flow-arrow{color:var(--border-strong);align-items:center;display:flex}.flow-arrow .icon{width:16px;height:16px}.animate-fade-in{animation:.3s forwards modal-fade-in}.animate-slide-up{animation:.4s cubic-bezier(.16,1,.3,1) forwards modal-slide-up}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
