.animated-background{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;background:radial-gradient(circle at 20% 50%,rgba(59,130,246,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(139,92,246,.1) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(236,72,153,.1) 0%,transparent 50%)}.footer{background-color:#46464625;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);padding:3rem 0 2rem;margin-top:auto}@media (min-width: 1024px){.footer{position:fixed;bottom:0;left:0;right:0;z-index:50}}.footer-content{display:flex;justify-content:space-between;align-items:flex-start;gap:0rem}.footer-left{flex:1}.footer-profile{display:flex;align-items:center;gap:1rem}.footer-avatar{width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#fff;flex-shrink:0}.footer-info h3{font-size:1.3rem;color:#fff;margin-bottom:.25rem;font-weight:600}.footer-info p{font-size:.9rem;color:#94a3b8;margin-bottom:.5rem;line-height:1.4}.footer-info small{font-size:.75rem;color:#6b7280;font-family:Monaco,Courier New,monospace}.footer-right{flex:1;display:flex;justify-content:flex-end}.footer-links{display:flex;gap:3rem}.link-section{text-align:left}.link-section h4{font-size:.8rem;color:#94a3b8;margin-bottom:.5rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em}.link-section a{display:block;color:#ffffffb3;text-decoration:none;transition:all .3s ease;margin-bottom:.5rem;font-size:.95rem;border-radius:4px;touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,255,255,.1)}.link-section a:hover{color:#ffffffe6;background-color:#ffffff0d}@media (max-width: 1024px){.footer{padding:2.5rem 0 1.5rem}}@media (max-width: 768px){.footer{padding:2rem 0 1rem;background-color:#46464625;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.footer-avatar{width:50px;height:50px;font-size:1rem}.footer-info h3{font-size:1.2rem;text-align:left}.footer-info p{font-size:.85rem}.link-section a{font-size:.9rem;margin-bottom:.75rem;padding-left:1rem;text-align:left}.link-section h4{font-size:.8rem;margin-bottom:.5rem;text-align:left}.footer-content{flex-direction:column;gap:2rem;text-align:center;align-items:center}.footer-right{justify-content:center}.footer-links{gap:2rem}.footer-profile{justify-content:center}}@media (max-width: 480px){.footer-avatar{width:45px;height:45px;font-size:.9rem}.footer-info h3{font-size:1.1rem}.footer-info p{font-size:.8rem}.link-section a{font-size:.8rem;background-color:transparent;border:none;border-radius:0;text-align:left;padding-left:1rem}.link-section h4{font-size:.75rem;margin-bottom:.25rem;text-align:left}.footer-links{flex-direction:column;gap:.25rem;text-align:left}.footer-profile{flex-direction:row;text-align:left;gap:1rem;justify-content:center}.footer-content{flex-direction:column;gap:1.5rem;text-align:center;align-items:center}.link-section a:hover{background-color:#ffffff0d;border-color:transparent}}.home{min-height:100vh;display:flex;flex-direction:column}@media (min-width: 1024px){.home{padding-bottom:200px}}.main-content{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 0}.hero-section{text-align:center;max-width:600px;margin:0 auto}.main-title{font-size:4rem;font-weight:700;margin-bottom:1.5rem;color:#fff;position:relative;line-height:1.1}.main-title:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:100px;height:3px;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:2px;opacity:.7}.highlight{color:#3b82f6;background:linear-gradient(45deg,#3b82f6,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{font-size:1.5rem;color:#94a3b8;margin-bottom:3rem;font-weight:400;line-height:1.4}.action-buttons{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:3rem}.btn-blog{background-color:#ffffff0d;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);padding:14px 28px;border-radius:12px;text-decoration:none;font-weight:400;font-size:1.1rem;letter-spacing:.05em;transition:all .4s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-transform:uppercase;min-height:52px;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,255,255,.1)}.btn-blog:hover{background-color:#ffffff1a;color:#ffffffe6;border-color:#ffffff4d;transform:translateY(-3px);box-shadow:0 15px 30px #ffffff1a}@media (max-width: 1024px){.main-title{font-size:3.5rem}.subtitle{font-size:1.4rem}}@media (max-width: 768px){.main-title{font-size:3rem}.subtitle{font-size:1.25rem}.action-buttons{flex-direction:column;gap:1rem}.btn-blog{padding:16px 32px;font-size:1rem;min-height:56px}.footer-content{flex-direction:column;gap:2rem;text-align:center;align-items:center}.footer-right{justify-content:center}.footer-links{gap:2rem}.footer-profile{justify-content:center}}@media (max-width: 414px){.main-title{font-size:2.2rem}.subtitle{font-size:1rem}.hero-section{padding:0 .5rem}}@media (max-width: 360px){.main-title{font-size:2rem}.subtitle{font-size:.95rem}.btn-blog{font-size:.9rem;padding:14px 28px}}.project-item{background:linear-gradient(135deg,#1f2937,#374151);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:2rem 2rem .6rem;transition:all .3s cubic-bezier(.4,0,.2,1);height:100%;display:flex;flex-direction:column;position:relative}.project-header{position:absolute;top:1rem;right:1rem;z-index:10}.mobile-dropdown-toggle{display:none;background:#ffffff1a;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-dropdown-toggle:hover{background:#fff3}.triangle{color:#fff;font-size:.8rem;transition:transform .3s ease;display:inline-block}.triangle.open{transform:rotate(180deg)}.mobile-dropdown{display:none;position:absolute;top:3rem;right:1rem;background:#1f2937f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.5rem;min-width:120px;z-index:100}.dropdown-link{display:block;color:#fffc;text-decoration:none;padding:.5rem .75rem;border-radius:4px;font-size:.85rem;transition:all .3s ease;margin-bottom:.25rem}.dropdown-link:last-child{margin-bottom:0}.dropdown-link:hover{background:#ffffff1a;color:#fff}.project-item:hover{transform:translateY(-2px);box-shadow:0 10px 25px #0003;border-color:#fff3}.project-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.project-main{flex:1;min-width:0}.project-title-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.project-title-row h3{font-size:1.3rem;color:#fff;font-weight:600;margin:0}.project-description{color:#d1d5db;line-height:1.5;margin-bottom:1rem;font-size:.95rem}.tech-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}.tech-tag{background-color:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.25);padding:3px 8px;border-radius:5px;font-size:.75rem;font-weight:500}.project-actions{display:flex;align-items:flex-start;flex-shrink:0}.action-buttons{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.btn-source,.btn-demo,.btn-blog-link{padding:10px 20px;border-radius:8px;text-decoration:none;font-weight:500;font-size:.875rem;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;color:#fff;min-height:44px;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,.1);white-space:nowrap}.btn-source{background-color:#3b82f6}.btn-source:hover{background-color:#2563eb;transform:translateY(-1px);box-shadow:0 6px 12px #3b82f64d}.btn-demo{background-color:#10b981}.btn-demo:hover{background-color:#059669;transform:translateY(-1px);box-shadow:0 6px 12px #10b9814d}.btn-blog-link{background-color:#f59e0b}.btn-blog-link:hover{background-color:#d97706;transform:translateY(-1px);box-shadow:0 6px 12px #f59e0b4d}@media (max-width: 768px){.mobile-dropdown-toggle{display:flex;align-items:center;justify-content:center}.mobile-dropdown{display:block}.desktop-buttons{display:none}.project-item{padding:1.5rem}.project-content{flex-direction:column;align-items:stretch;gap:1.5rem}.project-actions,.btn-source,.btn-demo,.btn-blog-link{display:none}}@media (max-width: 480px){.project-item{padding:1.25rem}.project-title-row h3{font-size:1.2rem}.project-description{font-size:.9rem}.tech-stack{gap:.3rem}.tech-tag{font-size:.7rem;padding:2px 6px}.project-content{gap:1.25rem}}.projects-page{min-height:100vh;background:#0a0a0a;color:#fff;position:relative;z-index:1;overflow-x:hidden;display:flex;flex-direction:column}@media (min-width: 1024px){.projects-page{padding-bottom:200px}}.projects-nav{position:fixed;top:2rem;left:2rem;z-index:999}.back-link:hover{color:#fff}.container{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:0 2rem}.projects-header{text-align:center;padding:6rem 0 4rem}.projects-header h1{font-size:3.5rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(45deg,#3b82f6,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.3}.projects-header p{font-size:1.2rem;color:#94a3b8}.projects-section{margin:3rem 0}.projects-list{display:grid;grid-template-columns:1fr;gap:2rem;max-width:900px;margin:0 auto}.other-projects-section{margin-top:4rem}.other-projects-section h2{font-size:2rem;text-align:center;margin-bottom:2rem;color:#94a3b8}.other-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.other-card{background-color:#1f2937;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);height:100%;display:flex;flex-direction:column}.other-card:hover{transform:translateY(-4px);border-color:#ffffff26}.other-card .card-header{margin-bottom:1rem}.other-card h3{font-size:1.1rem;color:#fff}.other-card .project-description{font-size:.9rem;margin-bottom:1.5rem}.tech-tag.small{padding:4px 8px;font-size:.7rem}.project-link{color:#3b82f6;text-decoration:none;font-weight:500;font-size:.9rem;transition:color .3s ease}.project-link:hover{color:#60a5fa}.status-badge{color:#fff;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.small{padding:2px 8px;font-size:.7rem}.loading-state{text-align:center;padding:4rem 0}.spinner{width:40px;height:40px;border:4px solid rgba(59,130,246,.3);border-left-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{color:#9ca3af}@media (min-width: 1200px){.projects-list{grid-template-columns:1fr 1fr;gap:2.5rem;max-width:1200px}}@media (max-width: 1024px){.container{padding:0 1.5rem}.projects-header h1{font-size:3rem}.project-item{padding:1.75rem}.footer{padding:2.5rem 0 1.5rem}}@media (max-width: 768px){.back-link{padding:12px 24px;font-size:1rem;min-height:52px}.container{padding:0 1rem}.projects-header{padding:5rem 0 3rem}.projects-header h1{font-size:2.5rem}.projects-section{margin:2rem 0}.projects-list{gap:1.5rem}.other-projects-section{margin-top:3rem}.other-projects-section h2{font-size:1.75rem;margin-bottom:1.5rem}.other-grid{grid-template-columns:1fr;gap:1.25rem}.other-card{padding:1.25rem}}@media (max-width: 480px){.projects-nav{padding:1rem 0 .5rem}.back-link{padding:14px 28px;font-size:.95rem;min-height:52px;width:auto;max-width:200px}.container{padding:0 .75rem}.projects-header{padding:4rem 0 2rem}.projects-header h1{font-size:2rem}.projects-section{margin:1.5rem 0}.projects-list{gap:1.25rem}.other-projects-section{margin-top:2rem}.other-projects-section h2{font-size:1.5rem;margin-bottom:1.25rem}.other-grid{gap:1rem}.other-card{padding:1rem}}@media (max-width: 414px){.back-link{padding:12px 24px;font-size:.9rem}}@media (max-width: 320px){.projects-header h1{font-size:1.8rem}}.log-page{min-height:100vh;background:#0a0a0a;color:#fff;position:relative;z-index:1;overflow-x:hidden;display:flex;flex-direction:column}@media (min-width: 1024px){.log-page{padding-bottom:200px}}.log-nav{position:fixed;top:2rem;left:2rem;z-index:999}.back-link{color:#ffffffb3;text-decoration:none;font-size:.9rem;transition:all .3s ease;padding:8px 16px;background-color:#ffffff0d;border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:48px;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:rgba(255,255,255,.1)}.back-link:hover{color:#fff;background-color:#ffffff1a}.main-content{flex:1;display:flex;flex-direction:column;padding:2rem 0}.container{position:relative;z-index:1;max-width:800px;margin:0 auto;padding:0 2rem}.log-header{text-align:center;padding:6rem 0 4rem}.log-title{font-size:3.5rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(45deg,#3b82f6,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.3}.log-subtitle{font-size:1.2rem;color:#94a3b8;margin:0}.timeline{position:relative;margin:2rem 0}.timeline:before{content:"";position:absolute;left:30px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#3b82f6,#60a5fa,#3b82f6)}.timeline-item{position:relative;display:flex;margin-bottom:3rem;opacity:0;transform:translateY(20px);animation:fadeInUp .6s ease forwards}.timeline-item:nth-child(1){animation-delay:.1s}.timeline-item:nth-child(2){animation-delay:.2s}.timeline-item:nth-child(3){animation-delay:.3s}.timeline-item:nth-child(4){animation-delay:.4s}.timeline-item:nth-child(5){animation-delay:.5s}.timeline-item:nth-child(6){animation-delay:.6s}.timeline-marker{position:relative;flex-shrink:0;width:60px;display:flex;justify-content:center;align-items:flex-start;padding-top:8px}.timeline-icon{width:16px;height:16px;border-radius:50%;border:3px solid #0a0a0a;position:relative;z-index:2;transition:all .3s ease}.timeline-icon.dev{background-color:#3b82f6;box-shadow:0 0 0 4px #3b82f633}.timeline-icon.enhancement{background-color:#10b981;box-shadow:0 0 0 4px #10b98133}.timeline-icon.bugfix{background-color:#ef4444;box-shadow:0 0 0 4px #ef444433}.timeline-icon.feat{background-color:#f59e0b;box-shadow:0 0 0 4px #f59e0b33}.timeline-content{flex:1;background:linear-gradient(135deg,#1f2937,#374151);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem;margin-left:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.timeline-content:before{content:"";position:absolute;left:-8px;top:24px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #1f2937}.timeline-content:hover{transform:translateY(-2px);box-shadow:0 10px 25px #0003;border-color:#fff3}.timeline-date{font-size:.85rem;color:#60a5fa;font-weight:500;margin-bottom:.5rem;font-family:Monaco,Courier New,monospace}.timeline-relative-time{color:#9ca3af;font-weight:400;font-size:.8rem}.timeline-title{font-size:1.25rem;color:#fff;font-weight:600;margin:0 0 .75rem;line-height:1.3}.timeline-description{color:#d1d5db;line-height:1.6;margin-bottom:1rem;font-size:.95rem}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.container{padding:0 1.5rem}.log-title{font-size:3rem}.timeline-content{padding:1.25rem}}@media (max-width: 768px){.back-link{padding:12px 24px;font-size:1rem;min-height:52px}.container{padding:0 1rem}.log-header{padding:5rem 0 3rem}.log-title{font-size:2.5rem}.timeline:before{left:20px}.timeline-marker{width:40px}.timeline-content{margin-left:.75rem;padding:1rem}.timeline-content:before{left:-6px;border-right-width:6px;border-top-width:6px;border-bottom-width:6px}}@media (max-width: 480px){.back-link{padding:14px 28px;font-size:.95rem;min-height:52px}.container{padding:0 .75rem}.log-header{padding:4rem 0 2rem}.log-title{font-size:2rem}.log-subtitle{font-size:1rem}.timeline:before{left:15px}.timeline-marker{width:30px}.timeline-icon{width:12px;height:12px}.timeline-content{margin-left:.5rem;padding:.875rem}.timeline-content:before{left:-5px;border-right-width:5px;border-top-width:5px;border-bottom-width:5px;top:20px}.timeline-title{font-size:1.1rem}.timeline-description{font-size:.9rem}.timeline-item{margin-bottom:2rem}}@media (max-width: 320px){.log-title{font-size:1.8rem}}.badge{display:inline-block;border-radius:16px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border:1px solid;transition:all .2s ease;white-space:nowrap;vertical-align:middle}.badge--small{padding:2px 8px;font-size:.65rem;border-radius:12px}.badge--medium{padding:4px 12px;font-size:.75rem}.badge--large{padding:6px 16px;font-size:.85rem;border-radius:20px}.badge:hover{transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.badge--animated{animation:badgePulse 2s infinite}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.8}}@media (max-width: 480px){.badge--medium{padding:3px 10px;font-size:.7rem}.badge--large{padding:4px 12px;font-size:.75rem}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}@media (max-width: 1024px){html{scroll-padding-top:80px}}@media (max-width: 768px){html{scroll-padding-top:80px}}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:#0a0a0a;color:#fff;overflow-x:hidden;min-height:100vh;font-feature-settings:"kern" 1,"liga" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:18px}@media (max-width: 1024px){body{font-size:17px}}@media (max-width: 768px){body{font-size:16px}}@media (max-width: 480px){body{font-size:15px}}@media (max-width: 414px){body{font-size:14px}}@media (max-width: 360px){body{font-size:14px}.container{padding:0 8px}}.container{max-width:1200px;margin:0 auto;padding:0 24px}@media (max-width: 1024px){.container{padding:0 20px}}@media (max-width: 768px){.container{padding:0 16px}}@media (max-width: 480px){.container{padding:0 12px}}@media (max-width: 414px){.container{padding:0 10px}}@media (max-width: 360px){.container{padding:0 8px}}.fade-in{animation:fadeIn .8s ease-in-out}.slide-up{animation:slideUp .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%,to{box-shadow:0 0 20px #3b82f64d}50%{box-shadow:0 0 40px #3b82f699}}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-block;min-height:48px;min-width:48px;touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,.1)}@media (max-width: 1024px){.btn{padding:14px 28px;font-size:16px;min-height:48px;min-width:48px}}@media (max-width: 768px){.btn{padding:14px 28px;font-size:16px;min-height:48px;min-width:48px}}@media (max-width: 480px){.btn{padding:16px 32px;font-size:16px;min-height:52px;min-width:52px}}@media (max-width: 414px){.btn{padding:16px 30px;font-size:15px;min-height:50px}}@media (max-width: 360px){.btn{padding:14px 28px;font-size:14px;min-height:48px}}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb;transform:translateY(-2px)}.btn-outline{background-color:transparent;color:#3b82f6;border:2px solid #3b82f6}.btn-outline:hover{background-color:#3b82f6;color:#fff}.cursor{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}
