@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=Plus+Jakarta+Sans:ital,wght@0,300..800;1,300..800&display=swap";:root{--bg-main:#fff;--bg-card:#f7f7f7;--bg-btn:#000;--text-primary:#000;--text-secondary:#555;--text-light:#fff;--border-color:#e5e5e5;--font-family-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-family-serif:"Outfit", sans-serif;--font-family:var(--font-family-sans);--error-color:#d00101;transition:background-color .3s,color .3s}body.dark-mode{--bg-main:#0a0a0a;--bg-card:#141414;--bg-btn:#fff;--text-primary:#fff;--text-secondary:#aaa;--text-light:#000;--error-color:#e53e3e;--border-color:#262626}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-family);margin:0;padding:0;line-height:1.5}h1,h2,.greeting-heading,.about-name,.skills-page-title,.section-title-alt,.timeline-section-title,.info-block-title{font-family:var(--font-family-serif);letter-spacing:-.02em;font-weight:700}body,nav,div,section,header,footer,a,button{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}.login-container{box-sizing:border-box;justify-content:center;align-items:center;min-height:calc(100vh - 180px);padding:40px 20px;display:flex}.login-card{border:1px solid var(--border-color);box-sizing:border-box;background-color:#0000;border-radius:16px;width:100%;max-width:440px;padding:40px;transition:border-color .25s;box-shadow:0 4px 30px #00000005}.login-card:hover{border-color:var(--text-secondary)}.login-header{text-align:center;margin-bottom:30px}.login-title{font-family:var(--font-family-serif);color:var(--text-primary);letter-spacing:.03em;margin-top:0;margin-bottom:8px;font-size:1.8rem;font-weight:700}.login-subtitle{color:var(--text-secondary);margin:0;font-size:.9rem}.login-error-alert{color:#ef4444;background-color:#ef444414;border:1px solid #ef444433;border-radius:8px;align-items:center;gap:10px;margin-bottom:24px;padding:12px 16px;font-size:.85rem;line-height:1.4;display:flex}.error-icon{font-size:1.2rem;font-weight:700;line-height:1}.login-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{letter-spacing:.05em;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;font-weight:700}.form-group input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);box-sizing:border-box;background-color:#0000;border-radius:8px;padding:14px 16px;font-size:.95rem;transition:all .25s cubic-bezier(.16,1,.3,1)}.form-group input::placeholder{color:var(--text-secondary);opacity:.5}.form-group input:focus{border-color:var(--text-primary);background-color:var(--bg-card);outline:none}.login-submit-btn{background-color:var(--text-primary);width:100%;color:var(--bg-main);border:1px solid var(--text-primary);letter-spacing:.08em;cursor:pointer;box-sizing:border-box;border-radius:100px;margin-top:10px;padding:14px 20px;font-size:.85rem;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1)}.login-submit-btn:hover{color:var(--text-primary);background-color:#0000;transform:translateY(-2px)}.login-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (width<=480px){.login-card{box-shadow:none;border:none;padding:30px 20px}}.dashboard-container{box-sizing:border-box;max-width:1200px;min-height:calc(100vh - 180px);margin:0 auto;padding:40px 20px}.dashboard-loading-container{min-height:calc(100vh - 180px);color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--text-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dash-alert{z-index:2000;border-radius:8px;padding:16px 24px;font-size:.9rem;font-weight:700;animation:.3s slideInRight;position:fixed;top:100px;right:40px;box-shadow:0 10px 30px #00000014}@keyframes slideInRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}.dashboard-layout{grid-template-columns:260px 1fr;align-items:start;gap:40px;display:grid}.dashboard-sidebar{border:1px solid var(--border-color);box-sizing:border-box;border-radius:12px;padding:24px}.sidebar-header{border-bottom:1px solid var(--border-color);margin-bottom:24px;padding-bottom:16px}.sidebar-header h3{font-family:var(--font-family-serif);color:var(--text-primary);letter-spacing:.05em;margin:0 0 6px;font-size:1.15rem;font-weight:700}.sidebar-header p{color:var(--text-secondary);margin:0;font-size:.85rem}.sidebar-nav{flex-direction:column;gap:8px;display:flex}.nav-item-btn{width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background-color:#0000;border:none;border-radius:6px;padding:12px 16px;font-size:.85rem;font-weight:600;transition:all .2s;display:block}.nav-item-btn:hover{background-color:var(--bg-card);color:var(--text-primary)}.nav-item-btn.active{background-color:var(--text-primary);color:var(--bg-main)}.logout-btn{border-top:1px solid var(--border-color);border-radius:0;margin-top:16px;padding-top:16px}.logout-btn:hover{color:#ef4444;background-color:#0000}.dashboard-content{min-height:500px}.tab-pane{animation:.3s fadeIn}.tab-pane-header{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:12px;display:flex}.tab-pane-header h2{font-family:var(--font-family-serif);color:var(--text-primary);margin:0;font-size:1.6rem;font-weight:700}.dashboard-grid-list{flex-direction:column;gap:20px;display:flex}.dashboard-item-card{border:1px solid var(--border-color);border-radius:12px;justify-content:space-between;align-items:center;gap:20px;padding:24px;transition:border-color .25s;display:flex}.dashboard-item-card:hover{border-color:var(--text-secondary)}.item-details h4{color:var(--text-primary);margin:0 0 6px;font-size:1.15rem;font-weight:700}.item-details .subtitle{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:10px;margin:0 0 10px;font-size:.8rem;font-weight:600;display:flex}.feat-badge{background-color:var(--text-primary);color:var(--bg-main);letter-spacing:.02em;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700}.item-details .desc-summary{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.5}.item-actions{gap:10px;display:flex}.btn{letter-spacing:.05em;cursor:pointer;border-radius:8px;padding:10px 16px;font-size:.8rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-block}.btn-primary:hover{color:var(--text-primary);background-color:#0000}.btn-edit{border:1px solid var(--border-color);color:var(--text-secondary);background-color:#0000}.btn-edit:hover{border-color:var(--text-primary);color:var(--text-primary)}.btn-delete{color:var(--text-secondary);background-color:#0000;border:1px solid #0000}.btn-delete:hover{color:#ef4444}.dashboard-profile-form{flex-direction:column;gap:20px;max-width:700px;display:flex}.form-group-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-group textarea{border:1px solid var(--border-color);background-color:var(--bg-main);width:100%;color:var(--text-primary);box-sizing:border-box;resize:vertical;border-radius:8px;padding:12px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.form-group textarea:focus{border-color:var(--text-primary);outline:none}.form-group input[type=text],.form-group input[type=url],.form-group input[type=password],.form-group input[type=email]{border:1px solid var(--border-color);background-color:var(--bg-main);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;padding:12px 16px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-group input[type=text]:focus,.form-group input[type=url]:focus,.form-group input[type=password]:focus,.form-group input[type=email]:focus{border-color:var(--text-primary);box-shadow:0 0 0 2px #80808014}.btn-save-profile{background-color:var(--text-primary);color:var(--bg-main);border:1px solid var(--text-primary);border-radius:30px;align-self:flex-start;padding:14px 24px}.btn-save-profile:hover{color:var(--text-primary);background-color:#0000}.messages-list{flex-direction:column;gap:20px;display:flex}.message-item-card{border:1px solid var(--border-color);background-color:var(--bg-card);border-radius:12px;padding:24px}.msg-header{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.9rem;display:flex}.msg-email{color:var(--text-secondary);font-size:.85rem}.msg-date{color:var(--text-secondary);font-size:.8rem}.msg-subject{color:var(--text-primary);margin-bottom:12px;font-size:.9rem;font-weight:700}.msg-subject span{color:var(--text-secondary);font-weight:400}.msg-body{color:var(--text-primary);white-space:pre-wrap;border:1px solid var(--border-color);background-color:#8080800d;border-radius:6px;padding:16px;font-size:.9rem;line-height:1.6}.no-messages{color:var(--text-secondary);text-align:center;padding:40px 0}.dashboard-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1500;box-sizing:border-box;background-color:#0006;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.dashboard-modal{background-color:var(--bg-main);border:1px solid var(--border-color);box-sizing:border-box;border-radius:16px;width:100%;max-width:650px;max-height:90vh;padding:40px;animation:.4s cubic-bezier(.16,1,.3,1) slideUp;position:relative;overflow-y:auto;box-shadow:0 20px 50px #00000026}.dashboard-modal h3{font-family:var(--font-family-serif);color:var(--text-primary);letter-spacing:.02em;margin:0 0 24px;font-size:1.4rem;font-weight:700}.close-dash-modal{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;outline:none;font-size:2.2rem;line-height:1;transition:color .2s;position:absolute;top:25px;right:25px}.close-dash-modal:hover{color:var(--text-primary)}.modal-form-fields{flex-direction:column;gap:16px;display:flex}.form-group-checkbox{align-items:center;gap:10px;margin-top:5px;display:flex}.form-group-checkbox label{color:var(--text-secondary);cursor:pointer;font-size:.85rem}.form-group-checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px}.btn-modal-submit{background-color:var(--text-primary);color:var(--bg-main);border:1px solid var(--text-primary);border-radius:30px;width:100%;margin-top:15px;padding:14px 24px}.btn-modal-submit:hover{color:var(--text-primary);background-color:#0000}.form-group select{border:1px solid var(--border-color);background-color:var(--bg-main);width:100%;color:var(--text-primary);box-sizing:border-box;cursor:pointer;border-radius:8px;outline:none;padding:14px;font-size:.95rem;transition:border-color .2s}.form-group select option{background-color:var(--bg-main);color:var(--text-primary)}.form-group select:focus{border-color:var(--text-primary)}.form-group input[type=range]{background-color:var(--border-color);-webkit-appearance:none;border-radius:3px;outline:none;width:100%;height:6px;margin:15px 0}.form-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background-color:var(--text-primary);cursor:pointer;border-radius:50%;width:18px;height:18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.dashboard-layout{grid-template-columns:1fr;gap:30px}}@media (width<=600px){.form-group-row{grid-template-columns:1fr;gap:15px}.dashboard-modal{padding:30px 20px}.dashboard-item-card{flex-direction:column;align-items:flex-start;gap:15px}.item-actions{justify-content:flex-end;width:100%}}.notFound-wrapper{background-color:var(--bg-main);min-height:100vh;color:var(--text-primary);font-family:var(--font-family);text-align:center;box-sizing:border-box;justify-content:center;align-items:center;padding:20px;display:flex}.nf-message-span{color:var(--error-color);font-weight:1000}.nf-content{flex-direction:column;align-items:center;width:100%;max-width:550px;display:flex}.nf-image{border-radius:12px;max-width:90%;height:auto;margin-bottom:24px}.nf-code{color:var(--error-color);margin:0;font-size:4.5rem;line-height:1}.nf-message{color:var(--text-secondary);margin:16px 0 28px;font-size:1.15rem;line-height:1.6}.nf-btn{background-color:var(--bg-btn);color:var(--text-light);border-radius:6px;padding:12px 28px;font-size:.95rem;font-weight:500;text-decoration:none;transition:opacity .2s,transform .1s;display:inline-block}.nf-btn:hover{opacity:.9;background-color:var(--text-secondary)}.nf-btn:active{transform:scale(.98)}@media (width<=480px){.nf-code{font-size:3.5rem}.nf-message{margin:12px 0 20px;font-size:1rem}.nf-image{max-width:90%}}.portfolio-container{box-sizing:border-box;max-width:1200px;margin:0 auto;padding:60px 20px}.portfolio-grid{grid-template-columns:1.25fr 1.5fr 1fr;align-items:start;gap:50px;display:grid}.grid-column{min-width:0}.column-left{justify-content:center;align-self:center;display:flex}.profile-img{object-fit:cover;border-radius:32px;width:100%;max-width:420px;height:auto}.column-center{flex-direction:column;gap:30px;display:flex}.greeting-heading{color:var(--text-primary);border-right:4px solid var(--text-primary);white-space:nowrap;width:0;margin:0;font-size:3.5rem;font-weight:800;animation:4s steps(6,end) infinite typing-hello,.75s step-end infinite blink-caret;display:inline-block;overflow:hidden}.bio-area{color:var(--text-secondary);font-size:1.1rem;line-height:1.6}.bio-area p{text-align:justify;margin:0 0 16px}.info-block{flex-direction:column;gap:15px;display:flex}.info-block-title{letter-spacing:1px;border-bottom:2px solid var(--border-color);color:var(--text-primary);margin:0;padding-bottom:8px;font-size:1.2rem;font-weight:700}.education-item{flex-direction:column;gap:5px;display:flex}.edu-time{color:var(--text-primary);font-size:.95rem;font-weight:600}.edu-detail{color:var(--text-secondary);font-size:.9rem}.contact-row{border-top:1px solid var(--border-color);color:var(--text-secondary);flex-wrap:wrap;gap:20px;padding-top:15px;font-size:.9rem;display:flex}.contact-item{align-items:center;gap:8px;display:flex}.contact-item a{color:var(--text-primary);text-decoration:underline}.skills-row-layout{align-items:center;gap:12px;width:100%;display:flex}.skills-scroll-wrapper{flex-wrap:wrap;flex:1;gap:12px;min-width:0;display:flex}.skills-scroll-wrapper .skill-icon-card:nth-child(n+6){display:none}.skill-icon-card{aspect-ratio:1;box-sizing:border-box;background-color:#0000;justify-content:center;align-items:center;width:70px;height:70px;padding:15px;display:flex}.skill-svg-icon{object-fit:contain;width:100%;height:100%}.view-more-card{border:1px solid var(--text-primary);background-color:#0000;border-radius:15px;text-decoration:none;transition:background-color .25s,border-color .25s}.view-more-card .skill-unknown-icon{text-align:center;font-size:.75rem;font-weight:700;line-height:1.2;display:block}body.dark-mode .skill-svg-icon{filter:none}.skill-unknown-icon{color:var(--text-primary);font-size:1.5rem;font-weight:700}.projects-list{flex-direction:column;gap:24px;display:flex}.project-brief-item{flex-direction:column;gap:4px;text-decoration:none;display:flex}.project-time{color:var(--text-secondary);font-size:.85rem;font-weight:600}.project-name{color:var(--text-primary);font-size:1.05rem;font-weight:700}.project-brief-item:hover .project-name{text-decoration:underline}@media (width<=1024px){.portfolio-grid{grid-template-columns:1fr 1.8fr;gap:40px}.column-left{grid-area:1/1/span 2;align-self:start}.column-center{grid-area:1/2}.column-right{grid-area:2/2}}@media (width<=768px){.portfolio-grid{grid-template-columns:1fr;gap:30px}.column-left{order:2;grid-area:auto}.column-center{order:1;grid-area:auto}.column-right{order:3;grid-area:auto}.profile-img{border-radius:24px;max-width:240px}.greeting-heading{font-size:2.8rem}.skills-scroll-wrapper{scrollbar-width:none;-webkit-overflow-scrolling:touch;box-sizing:border-box;flex-wrap:nowrap;gap:12px;width:100%;max-width:100%;padding:10px 0;display:flex;overflow-x:auto}.skills-scroll-wrapper::-webkit-scrollbar{display:none}.skills-scroll-wrapper .skill-icon-card{flex:0 0 70px;width:70px;height:70px}.skills-scroll-wrapper .skill-icon-card:nth-child(n+6){display:flex!important}.view-all-skills-card{flex:0 0 70px;width:70px;height:70px}}.view-all-skills-card{background-color:#0000;justify-content:center;align-items:center;text-decoration:none;transition:transform .25s;display:flex}.view-all-content{flex-direction:column;align-items:center;gap:4px;display:flex}.view-all-skills-card .view-all-symbol{color:var(--text-secondary);font-size:1.2rem;line-height:1;transition:color .25s,transform .25s}.view-all-skills-card .view-all-text{letter-spacing:.05em;color:var(--text-secondary);font-size:.65rem;font-weight:800;transition:color .25s}.view-all-skills-card:hover{transform:translateY(-2px)}.view-all-skills-card:hover .view-all-symbol{color:var(--text-primary);transform:translateY(-2px)}.view-all-skills-card:hover .view-all-text{color:var(--text-primary)}body.dark-mode .skill-icon-card[title=github i] .skill-svg-icon,body.dark-mode .skill-icon-card[title=git i] .skill-svg-icon{filter:brightness(0)invert()}.homepage-projects-horizontal-list{gap:16px;margin-top:5px;display:flex}.homepage-project-text-item{border-left:2px solid var(--border-color);box-sizing:border-box;border-radius:0 8px 8px 0;flex-direction:column;flex:1;gap:6px;padding:10px 14px;text-decoration:none;transition:border-color .25s,background-color .25s,transform .25s;display:flex}.project-more-item{border-left:2px dashed var(--border-color)}.project-more-item:hover{border-left-style:solid}.homepage-project-text-item:hover{border-left-color:var(--text-primary);background-color:var(--bg-card);transform:translate(4px)}.homepage-project-text-item .project-time{letter-spacing:.05em;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;font-weight:700}.homepage-project-text-item .project-name{font-family:var(--font-family-sans);color:var(--text-primary);margin:0;font-size:1.15rem;font-weight:700;line-height:1.3}.homepage-project-text-item .project-name:after{content:" →";opacity:0;font-family:var(--font-family-sans);transition:opacity .25s,transform .25s;display:inline-block;transform:translate(-6px)}.homepage-project-text-item:hover .project-name:after{opacity:1;transform:translate(4px)}.homepage-column-actions{gap:12px;margin-top:20px;display:flex}.col-action-btn{letter-spacing:.08em;text-align:center;box-sizing:border-box;border-radius:100px;flex:1;padding:14px 20px;font-size:.75rem;font-weight:700;text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1)}.col-action-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000000f}.outline-col-btn{border:1px solid var(--text-primary);color:var(--text-primary);background-color:#0000}.outline-col-btn:hover{background-color:var(--text-primary);color:var(--bg-main)}.solid-col-btn{background-color:var(--text-primary);color:var(--bg-main);border:1px solid var(--text-primary)}.solid-col-btn:hover{color:var(--text-primary);box-shadow:none;background-color:#0000}@media (width<=480px){.homepage-projects-horizontal-list{flex-direction:column;gap:15px}.homepage-column-actions{flex-direction:column;gap:10px}.col-action-btn{width:100%}}@keyframes typing-hello{0%,80%,to{width:0}25%,65%{width:6.5ch}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:var(--text-primary)}}.skills-page-container{max-width:1000px;min-height:80vh;margin:0 auto;padding:120px 20px 60px}.skills-page-header{flex-direction:column;gap:15px;margin-bottom:50px;display:flex}.skills-page-title{letter-spacing:-.05em;color:var(--text-primary);margin:0;font-size:2.2rem;font-weight:800}.skills-categories-list{flex-direction:column;gap:60px;display:flex}.skills-category-section{flex-direction:column;gap:20px;display:flex}.category-section-title{letter-spacing:.1em;color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin:0;padding-bottom:8px;font-size:1.1rem;font-weight:700}.skills-category-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.skill-detail-card{border:1px solid var(--border-color);opacity:0;background-color:#0000;border-radius:12px;align-items:center;gap:20px;padding:20px;transition:border-color .25s,transform .2s;animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeUp;display:flex;transform:translateY(15px)}.skills-category-grid>:first-child{animation-delay:50ms}.skills-category-grid>:nth-child(2){animation-delay:.1s}.skills-category-grid>:nth-child(3){animation-delay:.15s}.skills-category-grid>:nth-child(4){animation-delay:.2s}.skills-category-grid>:nth-child(n+5){animation-delay:.25s}.skill-detail-card:hover{border-color:var(--text-primary);transform:translateY(-4px);box-shadow:0 6px 20px #0000000a}.skill-detail-card:hover .skill-progress-bar-bg{height:6px}.skill-detail-card:hover .skill-progress-bar-fill{animation:1.2s cubic-bezier(.1,1,.1,1) forwards refillBar}.skill-card-badge-wrapper .skill-icon-card{aspect-ratio:1;background-color:#0000;width:50px;height:50px;padding:0}.skill-card-info{flex-direction:column;flex-grow:1;gap:8px;display:flex}.skill-card-name{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:700}.skill-level-container{flex-direction:column;gap:6px;display:flex}.skill-level-text{color:var(--text-secondary);align-self:flex-end;font-size:.8rem;font-weight:600}.skill-progress-bar-bg{background-color:var(--border-color);border-radius:2px;width:100%;height:4px;transition:height .2s;overflow:hidden}.skill-progress-bar-fill{background-color:var(--text-primary);border-radius:2px;width:0%;height:100%;transition:width 1.5s cubic-bezier(.1,1,.1,1)}@keyframes refillBar{0%{width:0%}}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@media (width<=600px){.skills-category-grid{grid-template-columns:1fr}}.about-page-container{max-width:900px;min-height:80vh;margin:0 auto;padding:120px 20px 80px}.about-profile-section{margin-bottom:60px}.about-profile-grid{grid-template-columns:180px 1fr;align-items:center;gap:40px;display:grid}.about-avatar-wrapper{aspect-ratio:1;border:1px solid var(--border-color);background-color:var(--bg-card);border-radius:50%;overflow:hidden}.about-avatar-img{object-fit:cover;object-position:50% 20%;width:100%;height:100%}.about-info-wrapper{flex-direction:column;gap:15px;display:flex}.about-name{letter-spacing:-.05em;color:var(--text-primary);margin:0;font-size:2.2rem;font-weight:800}.about-bio{color:var(--text-secondary);text-align:justify;margin:0;font-size:1.05rem;line-height:1.6}.about-actions-wrapper{align-items:center;gap:12px;margin-top:20px;display:flex}.download-cv-btn{background-color:var(--text-primary);color:var(--bg-main);letter-spacing:.05em;border:1px solid var(--text-primary);border-radius:8px;width:fit-content;padding:12px 24px;font-size:.85rem;font-weight:700;text-decoration:none;transition:background-color .25s,transform .2s,color .25s;display:inline-block}.download-cv-btn:hover{color:var(--text-primary);background-color:#0000;transform:translateY(-1px)}.about-github-btn{border:1px solid var(--border-color);width:44px;height:44px;color:var(--text-primary);background-color:var(--bg-card);box-sizing:border-box;border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex}.about-github-btn:hover{border-color:var(--text-primary);background-color:#0000;transform:translateY(-1px)}.about-services-section,.about-strengths-section{margin-bottom:60px}.section-title-alt{letter-spacing:.1em;color:var(--text-primary);border-bottom:1px solid var(--border-color);margin-bottom:25px;padding-bottom:8px;font-size:1.2rem;font-weight:700}.services-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;display:grid}.service-card{border:1px solid var(--border-color);border-radius:12px;padding:24px;transition:border-color .25s}.service-card:hover{border-color:var(--text-primary)}.service-card-title{color:var(--text-primary);margin:0 0 10px;font-size:1.1rem;font-weight:700}.service-card-desc{color:var(--text-secondary);text-align:justify;margin:0;font-size:.9rem;line-height:1.5}.strengths-grid{flex-wrap:wrap;gap:12px;display:flex}.strength-badge{border:1px solid var(--border-color);color:var(--text-primary);border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:border-color .25s,background-color .25s,color .25s}.strength-badge:hover{border-color:var(--text-primary);background-color:var(--text-primary);color:var(--bg-main)}.about-timeline-section{margin-top:60px}.timeline-section-title{letter-spacing:.1em;color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:40px;padding-bottom:8px;font-size:1.2rem;font-weight:700}.timeline-container{padding-left:30px;position:relative}.timeline-line{background-color:var(--border-color);width:2px;position:absolute;top:10px;bottom:10px;left:6px;overflow:hidden}.timeline-line-fill{background-color:var(--text-primary);width:100%;transition:height 80ms ease-out;position:absolute;top:0;left:0}.timeline-item{opacity:0;margin-bottom:40px;animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeUp;position:relative;transform:translateY(20px)}.timeline-dot-wrapper{justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:absolute;top:12px;left:-30px}.timeline-dot{background-color:var(--border-color);border:2px solid var(--bg-main);z-index:2;border-radius:50%;width:10px;height:10px;transition:background-color .25s,transform .2s}.timeline-content-card{border:1px solid var(--border-color);background-color:#0000;border-radius:12px;padding:24px;transition:border-color .25s,transform .2s,box-shadow .25s}.timeline-item:hover .timeline-dot{background-color:var(--text-primary);transform:scale(1.3)}.timeline-item:hover .timeline-content-card{border-color:var(--text-primary);transform:translate(4px);box-shadow:0 4px 20px #00000008}.timeline-date{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;font-weight:700;display:block}.timeline-institution{color:var(--text-primary);margin:0 0 8px;font-size:1.2rem;font-weight:700}.timeline-level-badge{letter-spacing:.05em;background-color:var(--bg-btn);color:var(--bg-main);border-radius:4px;margin-bottom:12px;padding:4px 8px;font-size:.75rem;font-weight:700;display:inline-block}.timeline-degree{color:var(--text-primary);margin:0 0 10px;font-size:.95rem;font-weight:600}.timeline-desc{color:var(--text-secondary);text-align:justify;margin:0;font-size:.9rem;line-height:1.5}@media (width<=768px){.about-profile-grid{text-align:center;grid-template-columns:1fr;gap:20px}.about-avatar-wrapper{width:140px;margin:0 auto}.timeline-container{padding-left:20px}.timeline-line{left:4px}.timeline-dot-wrapper{left:-20px}.timeline-content-card{padding:16px}.contact-form-row{grid-template-columns:1fr;gap:15px}}.about-contact-section{border-top:1px solid var(--border-color);box-sizing:border-box;max-width:700px;margin-top:100px;margin-left:auto;margin-right:auto;padding-top:60px}.contact-section-desc{color:var(--text-secondary);text-align:center;margin-top:-10px;margin-bottom:40px;font-size:.95rem}.about-contact-form{flex-direction:column;gap:20px;width:100%;display:flex}.contact-form-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.contact-form-group{flex-direction:column;gap:8px;display:flex}.contact-form-group label{letter-spacing:.05em;color:var(--text-primary);text-transform:uppercase;font-size:.75rem;font-weight:700}.contact-form-group input,.contact-form-group textarea{border:1px solid var(--border-color);background-color:var(--bg-card);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;padding:14px 16px;font-family:inherit;font-size:.95rem;transition:all .25s cubic-bezier(.16,1,.3,1)}.contact-form-group input::placeholder,.contact-form-group textarea::placeholder{color:var(--text-secondary)!important;opacity:1!important}.contact-form-group input:focus,.contact-form-group textarea:focus{border-color:var(--text-primary);background-color:var(--bg-card);box-shadow:0 0 0 1px var(--text-primary);outline:none}.contact-submit-btn{background-color:var(--text-primary);width:fit-content;color:var(--bg-main);border:1px solid var(--text-primary);letter-spacing:.08em;cursor:pointer;border-radius:100px;align-self:center;margin-top:10px;padding:14px 32px;font-size:.85rem;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1)}.contact-submit-btn:hover:not(:disabled){color:var(--text-primary);background-color:#0000;transform:translateY(-2px)}.contact-submit-btn:disabled{opacity:.5;cursor:not-allowed}.contact-alert{z-index:2500;text-align:center;border-radius:8px;padding:16px 24px;font-size:.9rem;font-weight:700;animation:4s cubic-bezier(.16,1,.3,1) forwards alertPop;position:fixed;top:100px;right:40px;box-shadow:0 10px 30px #00000014}.success-alert{color:#22c55e;background-color:#22c55e14;border:1px solid #22c55e}.error-alert{color:#ef4444;background-color:#ef444414;border:1px solid #ef4444}@keyframes alertPop{0%{opacity:0;transform:translate(120%)}10%{opacity:1;transform:translate(0)}90%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(120%)}}@media (width<=480px){.contact-alert{animation:4s cubic-bezier(.16,1,.3,1) forwards alertPopMobile;top:20px;left:20px;right:20px}}@keyframes alertPopMobile{0%{opacity:0;transform:translateY(-50px)}10%{opacity:1;transform:translateY(0)}90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-50px)}}.projects-page-container{max-width:1000px;min-height:80vh;margin:0 auto;padding:120px 20px 80px}.projects-page-header{flex-direction:column;gap:15px;margin-bottom:50px;display:flex}.back-link{color:var(--text-secondary);width:fit-content;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .25s}.back-link:hover{color:var(--text-primary)}.projects-page-title{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:2.2rem;font-weight:800}.projects-page-subtitle{color:var(--text-secondary);max-width:600px;margin:0;font-size:1.05rem;line-height:1.5}.filter-search-container{flex-direction:column;gap:24px;margin-bottom:50px;display:flex}.project-search-input{width:100%;max-width:400px;color:var(--text-primary);border:1px solid var(--border-color);background-color:#0000;border-radius:8px;outline:none;padding:12px 16px;font-family:inherit;font-size:.95rem;transition:border-color .25s}.project-search-input:focus{border-color:var(--text-primary)}.tech-filters-list{flex-wrap:wrap;gap:10px;display:flex}.tech-filter-badge{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;background-color:#0000;border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .25s}.tech-filter-badge:hover,.tech-filter-badge.active{border-color:var(--text-primary);background-color:var(--text-primary);color:var(--bg-main)}.projects-list-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px;display:grid}.project-page-card{border:1px solid var(--border-color);cursor:pointer;opacity:0;background-color:#0000;border-radius:12px;flex-direction:column;padding:28px;transition:border-color .25s,transform .25s,box-shadow .25s;animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeUp;display:flex;transform:translateY(20px)}.project-page-card:hover{border-color:var(--text-primary);transform:translateY(-4px);box-shadow:0 8px 30px #0000000a}.project-card-image-wrapper{aspect-ratio:16/9;border:1px solid var(--border-color);border-radius:8px;width:100%;margin-bottom:20px;overflow:hidden}.project-card-img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.project-page-card:hover .project-card-img{transform:scale(1.04)}.project-card-header{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.project-period{letter-spacing:.05em;color:var(--text-secondary);font-size:.8rem;font-weight:700}.project-title{color:var(--text-primary);margin:0;font-size:1.35rem;font-weight:700}.project-description-text{color:var(--text-secondary);text-align:justify;flex-grow:1;margin:0 0 20px;font-size:.95rem;line-height:1.6}.project-tech-tags{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.tech-tag{background-color:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:700}.project-card-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-top:16px;display:flex}.project-card-action-link{color:var(--text-secondary);font-size:.85rem;font-weight:700;text-decoration:none;transition:color .2s}.project-card-action-link:hover{color:var(--text-primary)}.project-card-action-link.primary-action{color:var(--text-primary);border-bottom:1px solid var(--text-primary)}.project-details-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0006;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.project-details-modal{background-color:var(--bg-main);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:650px;max-height:85vh;padding:40px;animation:.4s cubic-bezier(.16,1,.3,1) slideUp;position:relative;overflow-y:auto;box-shadow:0 20px 50px #00000026}.modal-image-wrapper{aspect-ratio:21/9;border:1px solid var(--border-color);border-radius:12px;width:100%;margin-bottom:24px;overflow:hidden}.modal-project-img{object-fit:cover;width:100%;height:100%}.close-modal-btn{background-color:var(--bg-main);border:1px solid var(--border-color);width:44px;height:44px;color:var(--text-primary);cursor:pointer;z-index:1100;border-radius:50%;outline:none;justify-content:center;align-items:center;font-size:1.8rem;line-height:1;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:25px;right:25px;box-shadow:0 4px 12px #00000014}.close-modal-btn:hover{color:var(--text-primary);border-color:var(--text-primary);transform:scale(1.05)rotate(90deg)}.modal-header{border-bottom:1px solid var(--border-color);flex-direction:column;gap:12px;margin-bottom:30px;padding-bottom:24px;display:flex}.modal-period{color:var(--text-secondary);letter-spacing:.05em;font-size:.85rem;font-weight:700}.modal-project-title{color:var(--text-primary);margin:0;font-size:2rem;font-weight:800}.modal-links{gap:15px;margin-top:10px;display:flex}.modal-link-btn{color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:10px 20px;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .25s}.modal-link-btn:hover{border-color:var(--text-primary)}.modal-link-btn.primary{background-color:var(--text-primary);color:var(--bg-main);border-color:var(--text-primary)}.modal-link-btn.primary:hover{color:var(--text-primary);background-color:#0000}.modal-body-content{flex-direction:column;gap:30px;display:flex}.modal-section h3{letter-spacing:.05em;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border-color);width:fit-content;margin:0 0 10px;padding-bottom:6px;font-size:1rem;font-weight:700}.modal-section p{color:var(--text-primary);text-align:justify;margin:0;font-size:.95rem;line-height:1.6}.modal-tech-list{flex-wrap:wrap;gap:8px;display:flex}@media (width<=768px){.projects-page-container{padding-top:100px}.projects-list-grid{grid-template-columns:1fr}.project-details-modal-overlay{padding:0}.project-details-modal{border:none;border-radius:0;width:100%;height:100%;max-height:100vh;margin:0;padding:70px 20px 30px}.close-modal-btn{width:40px;height:40px;font-size:1.6rem;position:fixed;top:15px;right:15px}.modal-project-title{font-size:1.6rem}.modal-links{flex-direction:column;gap:10px}.modal-link-btn{text-align:center}}.btn{font-family:var(--font-family);cursor:pointer;box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;padding:10px 20px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .25s,color .25s,border-color .25s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--bg-btn);color:var(--text-light);border:1px solid var(--bg-btn)}.btn-primary:hover:not(:disabled){opacity:.9}.btn-outline{border:1px solid var(--text-primary);color:var(--text-primary);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--text-primary);color:var(--bg-main)}.btn-danger{background-color:var(--error-color);color:#fff;border:1px solid var(--error-color)}.btn-danger:hover:not(:disabled){opacity:.9}.btn-text{color:var(--text-primary);background:0 0;border:none;padding:0}.btn-text:hover:not(:disabled){text-decoration:underline}.navbar-container{background-color:var(--bg-main);border-bottom:1px solid var(--border-color);font-family:var(--font-family-serif);box-sizing:border-box;z-index:100;justify-content:space-between;align-items:center;padding:20px 40px;display:flex;position:sticky;top:0}.navbar-brand{color:var(--text-primary);letter-spacing:1px;align-items:center;min-width:160px;font-size:1.2rem;font-weight:800;text-decoration:none;display:flex}.brand-static{white-space:nowrap}.brand-dynamic{border-right:2px solid var(--text-primary);white-space:nowrap;width:0;animation:4s steps(4,end) infinite typing,.75s step-end infinite blink-caret;display:inline-block;overflow:hidden}.navbar-navigation-links{gap:32px;display:flex}.navbar-actions{align-items:center;gap:24px;display:flex}.navbar-link{color:var(--text-primary);letter-spacing:.5px;padding-bottom:4px;font-size:.9rem;font-weight:600;text-decoration:none;position:relative}.navbar-link:after{content:"";background-color:var(--text-primary);transform-origin:100% 100%;width:100%;height:2px;transition:transform .25s ease-out;position:absolute;bottom:0;left:0;transform:scaleX(0)}.navbar-link:hover:after{transform-origin:0 100%;transform:scaleX(1)}.theme-btn{justify-content:center;align-items:center;width:36px;height:36px;transition:all .25s;display:flex;border:1px solid var(--border-color)!important;color:var(--text-primary)!important;background-color:#0000!important;border-radius:50%!important;padding:0!important}.theme-btn:hover{transform:scale(1.05);background-color:var(--bg-card)!important}.header-theme-btn{display:none!important}.menu-theme-btn{display:flex!important}.profile-nav-link{color:var(--text-primary);justify-content:center;align-items:center;text-decoration:none;transition:opacity .2s,transform .2s;display:flex}.profile-nav-link:hover{opacity:.8;transform:scale(1.05)}.profile-icon{display:block}.logout-nav-btn{color:var(--error-color)}.navbar-header{align-items:center;display:flex}.navbar-toggle-btn{display:none}.navbar-menu-wrapper{flex-grow:1;justify-content:space-between;align-items:center;margin-left:60px;display:flex}@media (width<=768px){.navbar-container{flex-direction:column;align-items:stretch;padding:15px 24px;transition:all .3s;display:flex}.navbar-header{justify-content:space-between;align-items:center;width:100%;display:flex}.navbar-toggle-btn{cursor:pointer;z-index:101;background:0 0;border:none;outline:none;flex-direction:column;justify-content:space-between;width:24px;height:18px;padding:0;display:flex}.navbar-toggle-btn .bar{background-color:var(--text-primary);border-radius:2px;width:100%;height:2px;transition:all .3s cubic-bezier(.16,1,.3,1)}.navbar-toggle-btn.open .bar:first-child{transform:translateY(8px)rotate(45deg)}.navbar-toggle-btn.open .bar:nth-child(2){opacity:0}.navbar-toggle-btn.open .bar:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.navbar-menu-wrapper{opacity:0;pointer-events:none;flex-direction:column;gap:24px;max-height:0;margin-top:0;padding:0;transition:max-height .4s cubic-bezier(.16,1,.3,1),opacity .3s,margin-top .3s;display:flex;overflow:hidden}.navbar-menu-wrapper.active{opacity:1;pointer-events:all;max-height:400px;margin-top:24px}.navbar-navigation-links{flex-direction:column;align-items:center;gap:20px;width:100%}.navbar-actions{border-top:1px solid var(--border-color);justify-content:center;gap:20px;width:100%;padding-top:20px}.navbar-header-actions{align-items:center;gap:16px;display:flex}.header-theme-btn{display:flex!important}.menu-theme-btn{display:none!important}}.footer-container{background-color:var(--bg-main);border-top:3px solid var(--border-color);font-family:var(--font-family-sans);box-sizing:border-box;margin-top:100px;padding:60px 40px 30px}.footer-layout{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:40px;max-width:1200px;margin:0 auto;padding-bottom:40px;display:flex}.footer-brand-section{flex:1;min-width:280px;max-width:450px}.footer-brand-name{font-family:var(--font-family-serif);color:var(--text-primary);letter-spacing:1px;margin-bottom:15px;font-size:1.25rem;font-weight:800;text-decoration:none;transition:opacity .2s;display:inline-block}.footer-brand-name:hover{opacity:.8}.footer-brand-tagline{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.6}.footer-social-icons{align-items:center;gap:16px;display:flex}.footer-icon-link{border:1px solid var(--border-color);width:42px;height:42px;color:var(--text-secondary);background-color:#0000;border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex}.footer-icon-link:hover{color:var(--text-primary);border-color:var(--text-primary);background-color:var(--bg-card);transform:translateY(-3px)}.footer-bottom{max-width:1200px;color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin:30px auto 0;font-size:.8rem;display:flex}.footer-copyright,.footer-design-by{margin:0}@media (width<=768px){.footer-container{padding:40px 20px 20px}.footer-layout{flex-direction:column;align-items:flex-start;gap:30px}.footer-links-grid{gap:40px;width:100%}.footer-bottom{flex-direction:column;align-items:flex-start;gap:10px}}
