#app{min-height:100vh;display:flex;flex-direction:column;color:#ededed;position:relative;overflow:hidden}#app,header{background:#1c1c1c}header{padding:20px 0;position:fixed;width:100%;top:0;z-index:1000}.navbar{display:flex;position:relative;justify-content:center;list-style:none;padding:0;margin:0 auto}.nav-link{color:#4dba87;margin:0 10px;text-decoration:none;font-size:18px;padding:5px 10px;border-radius:5px;transition:background-color .3s ease}.nav-link:hover{background-color:#363636}main{flex:1;padding:20px;margin-top:80px;position:relative;z-index:1}@keyframes fadeUp-e453f5f8{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.home-container[data-v-e453f5f8]{max-width:760px;margin:0 auto;padding:60px 24px 80px;text-align:center}.hero[data-v-e453f5f8]{animation:fadeUp-e453f5f8 .6s ease both}.hero-avatar[data-v-e453f5f8]{width:150px;height:150px;border-radius:50%;margin:0 auto 24px;border:4px solid #4dba87;overflow:hidden;flex-shrink:0;cursor:pointer;transition:opacity .2s ease}.hero-avatar[data-v-e453f5f8]:hover{opacity:.85}.hero-avatar img[data-v-e453f5f8]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center 30%;object-position:center 30%;display:block}.hero-name[data-v-e453f5f8]{font-size:2.8rem;font-weight:700;margin:0 0 12px;color:#ededed;letter-spacing:-.5px}.hero-name[data-v-e453f5f8]:after{content:"";display:block;width:48px;height:3px;background:#4dba87;margin:10px auto 0;border-radius:2px}.hero-roles[data-v-e453f5f8]{font-size:.95rem;color:#4dba87;letter-spacing:.04em;margin:16px 0 18px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:2px}.role[data-v-e453f5f8]{display:inline-flex;align-items:center}.role-label[data-v-e453f5f8]{position:relative;cursor:default;padding:2px 4px;border-radius:4px;transition:color .15s ease}.role-label[data-v-e453f5f8]:hover{color:#6dcfa0}.role-tooltip[data-v-e453f5f8]{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:230px;background:#1e1e1e;border:1px solid #333;border-radius:8px;padding:10px 14px;font-size:.78rem;color:#aaa;line-height:1.5;letter-spacing:0;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;transform:translateX(-50%) translateY(4px);z-index:20;white-space:normal}.role-tooltip.visible[data-v-e453f5f8]{opacity:1;transform:translateX(-50%) translateY(0)}.hero-bio[data-v-e453f5f8]{color:#aaa;font-size:1rem;line-height:1.7;max-width:560px;margin:0 auto}.divider[data-v-e453f5f8]{width:40px;height:1px;background:#333;margin:48px auto}.section h2[data-v-e453f5f8]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#4dba87;margin:0 0 24px}.section-text[data-v-e453f5f8]{color:#aaa;font-size:1rem;line-height:1.7;margin:0}.skills-section[data-v-e453f5f8]{animation:fadeUp-e453f5f8 .6s ease .1s both}.hobbies-section[data-v-e453f5f8]{animation:fadeUp-e453f5f8 .6s ease .2s both}.social-section[data-v-e453f5f8]{animation:fadeUp-e453f5f8 .6s ease .3s both}.skills-container[data-v-e453f5f8]{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;max-width:680px;margin:0 auto}.skill[data-v-e453f5f8]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:7px 16px;border:1px solid #4dba87;color:#4dba87;border-radius:20px;font-size:.85rem;opacity:0;animation:fadeUp-e453f5f8 .4s ease both;transition:background-color .2s ease,color .2s ease,transform .15s ease;white-space:nowrap}.skill[data-v-e453f5f8]:hover{background-color:#4dba87;color:#1c1c1c;transform:translateY(-2px)}.social-links[data-v-e453f5f8]{display:flex;justify-content:center;align-items:center;gap:32px}.social-group[data-v-e453f5f8]{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:110px}.social-label[data-v-e453f5f8]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#4dba87}.social-icons[data-v-e453f5f8]{display:flex;gap:16px;align-items:center}.social-link[data-v-e453f5f8]{color:#4dba87;transition:transform .2s ease,opacity .2s ease;display:inline-flex;align-items:center}.social-link[data-v-e453f5f8]:hover{transform:translateY(-3px);opacity:.7}.social-sep[data-v-e453f5f8]{width:1px;height:48px;background:#333}.keepsec-icon[data-v-e453f5f8]{width:28px;height:28px;display:block}.photo-card[data-v-e453f5f8]{position:relative;border:2px solid #4dba87;border-radius:12px;overflow:hidden;max-width:420px;max-height:80vh;width:90vw}.photo-card img[data-v-e453f5f8]{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.modal-backdrop[data-v-e453f5f8]{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card[data-v-e453f5f8]{background:#1e1e1e;border:1px solid #333;border-radius:12px;padding:28px 32px;width:320px;max-width:90vw;position:relative;text-align:center}.modal-close[data-v-e453f5f8]{position:absolute;top:12px;right:14px;background:none;border:none;color:#555;font-size:.9rem;cursor:pointer;padding:2px 4px;transition:color .2s ease}.modal-close[data-v-e453f5f8]:hover{color:#ededed}.modal-label[data-v-e453f5f8]{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:#4dba87;margin:0 0 8px}.modal-title[data-v-e453f5f8]{font-size:1.3rem;font-weight:700;color:#ededed;margin:0 0 14px}.modal-desc[data-v-e453f5f8]{font-size:.875rem;color:#888;line-height:1.65;margin:0}.modal-enter-active[data-v-e453f5f8],.modal-leave-active[data-v-e453f5f8]{transition:opacity .2s ease}.modal-enter-active .modal-card[data-v-e453f5f8],.modal-leave-active .modal-card[data-v-e453f5f8]{transition:transform .2s ease,opacity .2s ease}.modal-enter-from[data-v-e453f5f8],.modal-leave-to[data-v-e453f5f8]{opacity:0}.modal-enter-from .modal-card[data-v-e453f5f8],.modal-leave-to .modal-card[data-v-e453f5f8]{transform:translateY(10px);opacity:0}@keyframes fadeUp-76da7dfc{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes blink-76da7dfc{0%,80%,to{opacity:0}40%{opacity:1}}.page-container[data-v-76da7dfc]{max-width:760px;margin:0 auto;padding:60px 24px 80px}.page-header[data-v-76da7dfc]{text-align:center;margin-bottom:48px;animation:fadeUp-76da7dfc .6s ease both}.page-header h2[data-v-76da7dfc]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#4dba87;margin:0 0 10px}.page-sub[data-v-76da7dfc]{color:#aaa;font-size:.9rem;margin:0}.page-sub a[data-v-76da7dfc]{color:#4dba87;text-decoration:none}.page-sub a[data-v-76da7dfc]:hover{text-decoration:underline}.loading[data-v-76da7dfc]{display:flex;justify-content:center;gap:6px;padding:60px 0}.dot[data-v-76da7dfc]{width:8px;height:8px;border-radius:50%;background:#4dba87;animation:blink-76da7dfc 1.4s infinite both}.dot[data-v-76da7dfc]:nth-child(2){animation-delay:.2s}.dot[data-v-76da7dfc]:nth-child(3){animation-delay:.4s}.projects-list[data-v-76da7dfc]{display:flex;flex-direction:column;gap:12px}.project[data-v-76da7dfc]{display:flex;justify-content:space-between;align-items:center;background:#1e1e1e;border-left:3px solid transparent;border-radius:8px;padding:20px 24px;text-decoration:none;color:#ededed;opacity:0;animation:fadeUp-76da7dfc .4s ease both;transition:background .2s ease,border-color .2s ease,transform .2s ease}.project[data-v-76da7dfc]:hover{background:#242424;border-left-color:#4dba87;transform:translateX(4px)}.project-info h3[data-v-76da7dfc]{margin:0 0 6px;font-size:1rem;color:#ededed}.project-info p[data-v-76da7dfc]{margin:0;font-size:.875rem;color:#888;max-width:520px}.project-stats[data-v-76da7dfc]{display:flex;gap:16px;flex-shrink:0;margin-left:24px}.project-stats span[data-v-76da7dfc]{display:flex;align-items:center;gap:5px;font-size:.85rem;color:#666}.project-stats i[data-v-76da7dfc]{color:#4dba87}@keyframes fadeUp-7e903aaa{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes blink-7e903aaa{0%,80%,to{opacity:0}40%{opacity:1}}.page-container[data-v-7e903aaa]{max-width:760px;margin:0 auto;padding:60px 24px 80px}.page-header[data-v-7e903aaa]{text-align:center;margin-bottom:40px;animation:fadeUp-7e903aaa .6s ease both}.page-header h2[data-v-7e903aaa]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#4dba87;margin:0 0 20px}.tab-desc[data-v-7e903aaa]{margin:14px 0 0;color:#aaa;font-size:.9rem}.tab-desc[data-v-7e903aaa] a{color:#4dba87;text-decoration:none}.tab-desc[data-v-7e903aaa] a:hover{text-decoration:underline}.tab-bar[data-v-7e903aaa]{display:inline-flex;gap:0;border:1px solid #333;border-radius:24px;padding:3px}.tab-btn[data-v-7e903aaa]{cursor:pointer;padding:6px 20px;background:transparent;border:none;border-radius:20px;color:#666;font-size:.85rem;font-family:inherit;transition:background .2s ease,color .2s ease}.tab-btn[data-v-7e903aaa]:hover{color:#aaa}.tab-btn.active[data-v-7e903aaa]{background:#4dba87;color:#1c1c1c;font-weight:600}.loading[data-v-7e903aaa]{display:flex;justify-content:center;gap:6px;padding:60px 0}.dot[data-v-7e903aaa]{width:8px;height:8px;border-radius:50%;background:#4dba87;animation:blink-7e903aaa 1.4s infinite both}.dot[data-v-7e903aaa]:nth-child(2){animation-delay:.2s}.dot[data-v-7e903aaa]:nth-child(3){animation-delay:.4s}.error-state[data-v-7e903aaa]{text-align:center;padding:60px 0;color:#666;font-size:.9rem}.error-state button[data-v-7e903aaa]{margin-top:14px;cursor:pointer;padding:7px 20px;border:1px solid #4dba87;background:transparent;color:#4dba87;border-radius:20px;font-size:.85rem;font-family:inherit;transition:background .2s ease,color .2s ease}.error-state button[data-v-7e903aaa]:hover{background:#4dba87;color:#1c1c1c}.filter-bar[data-v-7e903aaa]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;animation:fadeUp-7e903aaa .5s ease .1s both}.filter-bar button[data-v-7e903aaa]{cursor:pointer;padding:5px 14px;border:1px solid #333;background:transparent;color:#aaa;border-radius:20px;font-size:.8rem;font-family:inherit;transition:border-color .2s ease,color .2s ease,background .2s ease}.filter-bar button.active[data-v-7e903aaa],.filter-bar button[data-v-7e903aaa]:hover{border-color:#4dba87;color:#4dba87;background:rgba(77,186,135,.08)}.posts-list[data-v-7e903aaa]{display:flex;flex-direction:column;gap:12px}.post[data-v-7e903aaa]{display:block;background:#1e1e1e;border-left:3px solid transparent;border-radius:8px;padding:20px 24px;text-decoration:none;color:#ededed;opacity:0;animation:fadeUp-7e903aaa .4s ease both;transition:background .2s ease,border-color .2s ease,transform .2s ease}.post[data-v-7e903aaa]:hover{background:#242424;border-left-color:#4dba87;transform:translateX(4px)}.post-body h3[data-v-7e903aaa]{margin:0 0 8px;font-size:1rem;color:#ededed;transition:color .2s ease}.post:hover .post-body h3[data-v-7e903aaa]{color:#4dba87}.post-excerpt[data-v-7e903aaa]{margin:0 0 16px;font-size:.875rem;color:#888;line-height:1.6}.post-footer[data-v-7e903aaa]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.post-date[data-v-7e903aaa]{font-size:.75rem;color:#555}.post-categories[data-v-7e903aaa]{display:flex;flex-wrap:wrap;gap:6px}.post-categories span[data-v-7e903aaa]{font-size:.7rem;padding:2px 10px;border:1px solid #333;border-radius:20px;color:#666}body{margin:0;font-family:Open Sans,sans-serif;background-color:#121212;color:#ededed;line-height:1.6}a{color:#4dba87;text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:20px}h1,h2,h3,h4,h5,h6{color:#ededed;margin-top:0}.button{display:inline-block;background-color:#4dba87;color:#ededed;padding:10px 20px;border:none;border-radius:5px;cursor:pointer;font-size:16px}.button:hover{background-color:#42b883}