:root{--bg-color: #f8fafc;--text-main: #0f172a;--text-muted: #64748b;--primary: #2563eb;--primary-hover: #1d4ed8;--card-bg: #ffffff;--border: #e2e8f0}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable;height:100%}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-main);line-height:1.6;display:flex;flex-direction:column;min-height:100vh;width:100%}.container{width:90%;max-width:1025px;margin:0 auto!important;display:block}#app-content{flex-grow:1;width:100%;padding-top:40px;opacity:0;transition:opacity .15s ease-in}#app-content.visible{opacity:1}h1,h2,h3{color:var(--text-main);margin-bottom:10px}h1{font-size:clamp(1.8rem,5vw,2.5rem);letter-spacing:-.05rem}h2{font-size:1.75rem;border-bottom:2px solid var(--border);padding-bottom:10px;margin-bottom:20px}.subtitle{color:var(--primary);font-weight:500;font-size:1.25rem}.lead{font-size:1.15rem;color:var(--text-muted);margin-bottom:30px}p{margin-bottom:15px}header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:15px 0;width:100%}.main-nav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.nav-links a{text-decoration:none;color:var(--text-muted);font-weight:500;margin-right:20px;transition:color .2s}.nav-links a:hover{color:var(--primary)}.page-content{margin-bottom:50px;width:100%}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;width:100%}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:24px;width:100%}.project-link-wrapper{display:block;overflow:hidden;line-height:0;cursor:pointer}.project-image{width:100%;height:200px;object-fit:cover;transition:transform .3s ease,filter .2s ease}.project-link-wrapper:hover .project-image{transform:scale(1.04);filter:brightness(.9)}.project-content{padding:20px;display:flex;flex-direction:column;flex-grow:1}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column}.card h3{font-size:1.2rem;margin-bottom:8px}.card h3 span{color:var(--primary);font-weight:400}.skeleton-image{width:100%;height:200px;border-radius:8px 8px 0 0}.skeleton-title{height:28px;width:60%;margin-top:15px;margin-bottom:15px;border-radius:4px}.skeleton-text{height:14px;width:100%;margin-bottom:10px;border-radius:4px}.skeleton-tag{width:50px;height:20px;border-radius:12px}.skeleton-btn{height:40px;flex:1;border-radius:4px}.skeleton-card{background:#1e1e1e;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.shimmer{background:linear-gradient(90deg,#fff0,#ffffff0d,#fff0);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-image,.skeleton-title,.skeleton-text,.skeleton-tag,.skeleton-btn{background-color:#e0e0e0;position:relative;overflow:hidden}.skeleton-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid #eeeeee;box-shadow:0 4px 12px #0000000d}.skeleton-image:after,.skeleton-title:after,.skeleton-text:after,.skeleton-tag:after,.skeleton-btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 1.5s infinite linear}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{background:var(--bg-color);border:1px solid var(--border);padding:4px 12px;border-radius:20px;font-size:.85rem;color:var(--text-muted);transition:box-shadow .2s}.skill-icon{color:var(--skill-color);font-size:1.2rem;display:flex;align-items:center;justify-content:center;min-width:1.2rem}.skill-tag i[class^=devicon-]{font-style:normal}.color-dot{width:10px;height:10px;border-radius:50%;background-color:var(--skill-color)}.fallback-dot{display:none}.icons-failed .skill-icon{display:none!important}.icons-failed .fallback-dot{display:inline-block!important}.experience-card{margin-bottom:20px}.card-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;margin-bottom:10px}.dates{color:var(--text-muted);font-size:.9rem;font-weight:500}.project-card{padding:0;overflow:hidden}.project-image{width:100%;height:200px;object-fit:cover;border-bottom:1px solid var(--border)}.project-content{padding:20px;flex-grow:1;display:flex;flex-direction:column}.project-content p{flex-grow:1}.card-footer{margin-top:15px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:15px}.btn{display:inline-block;padding:10px 20px;border-radius:8px;text-decoration:none;font-weight:500;font-size:.95rem;transition:all .2s;text-align:center}.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--text-main);border:1px solid var(--border)}.btn-outline:hover{border-color:var(--text-muted);background:var(--bg-color)}.collab-header{text-align:left;margin-bottom:30px}.message-form-container{border:2px solid var(--primary);border-radius:12px;padding:24px;margin-bottom:40px;background:#fff}.message-stack{display:flex;flex-direction:column;gap:12px;margin-top:10px}.stacked-message{padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.05)}.stacked-message:last-child{border-bottom:none}.message-text{margin:0;font-size:1rem;color:#333;line-height:1.4}.message-time{display:block;font-size:.75rem;color:#888;margin-top:4px}.stacked-message:last-child .message-text{font-weight:500}#ai-chat-container{position:fixed;bottom:20px;right:20px;z-index:2000;transition:opacity .3s ease-in-out}.lottie-btn{background:none;border:none;padding:0;cursor:pointer;transition:transform .2s ease;outline:none;position:fixed;bottom:20px;right:20px;z-index:1000;width:120px;height:120px}.lottie-btn dotlottie-player{width:100%!important;height:100%!important;display:block}.lottie-btn:hover{transform:scale(1.1)}#chat-window{width:290px;height:450px;background:#fff;border-radius:16px;box-shadow:0 10px 25px #0000001a;display:flex;flex-direction:column;position:absolute;bottom:95px;right:0;overflow:hidden}.chat-header{background:var(--primary);color:#fff;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}#chat-history{flex:1;padding:15px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:#f3f4f6}.msg{padding:8px 12px;border-radius:12px;max-width:85%;font-size:.9rem}.user-msg{align-self:flex-end;background:var(--primary);color:#fff}.bot-msg{align-self:flex-start;background:#fff;border:1px solid var(--border)}.chat-input-area{padding:10px;display:flex;gap:8px;border-top:1px solid var(--border)}#ai-input{flex:1;border:none;outline:none;padding:8px}.hidden{display:none!important}footer,.main-footer{width:100%;margin-top:50px;display:flex;justify-content:center}.main-footer .container{padding:40px 10px;color:var(--text-muted);font-size:.9rem;border-top:2px solid var(--border);text-align:center}.main-footer a{color:var(--primary);text-decoration:none}.main-footer a:hover{text-decoration:underline}.nav-actions{display:flex;align-items:center;gap:1.25rem}.nav-actions i{font-size:1.4rem;color:var(--text-muted);transition:color .2s ease}.nav-actions i:hover{color:var(--primary)}.footer-resume-link{color:var(--primary);text-decoration:none;font-weight:500;margin-left:5px}.footer-resume-link:hover{text-decoration:underline}.back-link{display:inline-block;margin-top:10px;font-size:.85em;color:#8b949e;cursor:pointer;transition:color .2s ease,transform .2s ease;-webkit-user-select:none;user-select:none}.back-link:hover{color:#58a6ff;text-decoration:underline;transform:translate(-4px)}.skills-layout{display:block;transition:all .3s ease}.skills-layout .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.snippet-display{display:none}.skills-layout.snippet-active{display:grid;grid-template-columns:320px 1fr;gap:32px;align-items:start}.skills-layout.snippet-active .grid{display:flex;flex-direction:column;gap:20px}.skills-layout.snippet-active .card{order:1;transition:transform .2s ease}.skills-layout.snippet-active .card.active-card{order:-1}.skills-layout.snippet-active .snippet-display{display:block;position:sticky;top:20px;animation:fadeIn .4s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.skills-layout.snippet-active{grid-template-columns:1fr}.skills-layout.snippet-active .snippet-display{position:relative;top:0;order:-2}}.skill-wrapper{display:inline-block;margin-right:8px;margin-bottom:8px;vertical-align:top}.tag{cursor:pointer;transition:box-shadow .2s ease;-webkit-user-select:none;user-select:none;border:1px solid transparent}.sublist{display:none;margin-top:8px;padding-left:15px;font-size:.85em;color:#8b949e;list-style:none}.sublist li{margin-bottom:4px}.sublist li.has-snippet{cursor:pointer;text-decoration:underline dashed;text-underline-offset:3px}.sublist li.has-snippet:hover{color:#58a6ff}.sublist.show{display:block}.mock-ide{background:#1e1e1e;border-radius:8px;border:1px solid #333;overflow:hidden;margin-bottom:12px;position:relative}.ide-header{background:#2d2d2d;padding:6px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #1e1e1e}.ide-title{font-size:.75em;color:#8b949e;font-family:sans-serif;flex-grow:1}.ide-code-container{padding:12px;min-height:100px;outline:none;color:#d4d4d4;font-family:Fira Code,monospace;font-size:.9em;line-height:1.5;white-space:pre}.ide-code-container:focus{background:#252525}.ide-console{background:#0d1117;color:#d1d5da;padding:4px 12px 12px;font-family:Fira Code,monospace;font-size:.85em;border-top:1px solid #333;max-height:200px;overflow-y:auto;cursor:text;display:flex;flex-direction:column;min-height:60px}#term-output-clean,#term-output-merge,#term-output-vec{white-space:pre-wrap;line-height:1.4}.terminal-line{display:flex;align-items:flex-start;gap:8px;width:100%}.term-input{outline:none!important;border:none!important;box-shadow:none!important;background:transparent!important;flex-grow:1;display:inline-block;min-width:5px;caret-color:#d1d5da}.term-input:focus{outline:none!important;border:none!important;box-shadow:none!important}.error-text{color:#f85149;font-weight:700}.hint-text{color:#8b949e;font-style:italic;margin-top:8px;font-size:.8em}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.animate-slide-right{animation:slideInFromLeft .8s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-left{animation:slideInFromRight .8s cubic-bezier(.25,1,.5,1) forwards}.project-image-container{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:8px 8px 0 0;background:#1a1a1a}.project-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s ease-in-out;opacity:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:32px;align-items:start;width:100%}.project-card{width:100%;display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid #e1e4e8;border-radius:8px;overflow:hidden}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}}.logo-img{opacity:1;z-index:2}.project-image-container:hover .logo-img{opacity:0}.project-image.cycle-active{opacity:1;z-index:1}.btn-android{display:flex;align-items:center;justify-content:center;gap:8px;background:#3ddc84!important;color:#070707!important;font-weight:700;text-decoration:none;padding:10px;border-radius:4px;transition:transform .2s ease,background .2s ease;font-size:.9rem;margin-top:5px}.btn-android:hover{background:#32b66d!important;transform:translateY(-2px)}.card-footer{display:flex;flex-direction:column;gap:10px;margin-top:auto}.button-group{display:flex;gap:10px;width:100%}
