:root{--primary-color: #4a90e2;--secondary-color: #357abd;--accent-color: #4a90e2;--text-color: #f0f0f0;--background-color: #050505;--card-bg: rgba(20, 20, 20, .4);--glass-border: rgba(255, 255, 255, .08);--glass-shadow: 0 16px 40px rgba(0, 0, 0, .5);--shadow: 0 4px 6px rgba(0, 0, 0, .1);--blur-bg: rgba(10, 10, 10, .8);--gradient-start: rgba(74, 144, 226, .15);--gradient-end: rgba(53, 122, 189, .15);--grid-color: rgba(74, 144, 226, .07);--grid-accent: rgba(74, 144, 226, .15)}[data-theme=light]{--primary-color: #2c75d8;--secondary-color: #1a5ea8;--accent-color: #2c75d8;--text-color: #111111;--background-color: #f5f7fa;--card-bg: rgba(255, 255, 255, .6);--glass-border: rgba(0, 0, 0, .08);--glass-shadow: 0 16px 40px rgba(0, 0, 0, .08);--shadow: 0 4px 6px rgba(0, 0, 0, .05);--blur-bg: rgba(255, 255, 255, .8);--gradient-start: rgba(74, 144, 226, .2);--gradient-end: rgba(53, 122, 189, .2);--grid-color: rgba(44, 117, 216, .07);--grid-accent: rgba(44, 117, 216, .2)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{font-family:Fira Code,Courier New,Courier,monospace;line-height:1.6;color:var(--text-color);background-color:var(--background-color);min-height:100vh;overflow-x:hidden;position:relative;transition:background-color .5s ease,color .5s ease}.container{max-width:1200px;margin:0 auto;padding:2rem;position:relative;z-index:1;background-color:transparent}header{text-align:center;margin-bottom:3rem;padding:4rem 0;position:relative}header:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100px;height:4px;background:var(--primary-color);border-radius:2px}h1{font-size:2.5rem;color:var(--primary-color);margin-bottom:.5rem;text-shadow:0 0 10px rgba(74,144,226,.3)}.subtitle{font-size:1.2rem;color:var(--text-color);opacity:.8;min-height:1.5em;display:flex;align-items:center;justify-content:center;gap:.2em}.typewriter{display:inline-block;color:var(--text-color);opacity:.8}.cursor{display:inline-block;width:2px;height:1em;background-color:var(--primary-color);margin-left:2px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes typing{0%{width:0}to{width:100%}}@keyframes deleting{0%{width:100%}to{width:0}}.typing{animation:typing 1.5s steps(30,end)}.deleting{animation:deleting 1s steps(30,end)}section{background:var(--card-bg);border:1px solid var(--glass-border);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:var(--glass-shadow);transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:1;opacity:0}section:hover{transform:translateY(-5px);box-shadow:0 12px 40px #0006;border-color:#4a90e233}h2{color:var(--primary-color);margin-bottom:1.5rem;font-size:1.8rem;display:flex;align-items:center;gap:.5rem}blockquote{font-style:italic;color:var(--text-color);border-left:4px solid var(--primary-color);padding-left:1rem;margin:1rem 0;opacity:.9}.skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.skill-category{background:#1a1a1a99;padding:1.5rem;border-radius:12px;border:1px solid var(--glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .3s ease}.skill-category:hover{transform:translateY(-3px);box-shadow:var(--glass-shadow);border-color:#4a90e233}.skill-category h3{color:var(--primary-color);margin-bottom:1rem}.skill-category ul{list-style-type:none}.skill-category li{margin-bottom:.5rem;color:var(--text-color)}.timeline-container{position:relative;margin:2rem 0}.timeline-track{display:flex;gap:2rem;padding:1rem 0}.timeline-item{flex:0 0 100%;margin-bottom:0;padding:1.5rem;background:#1a1a1a66;border-radius:12px;border-left:2px solid var(--primary-color);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .3s ease;min-width:280px;max-width:100%}.timeline-scroll-indicator{display:none;text-align:center;margin-top:1rem;color:var(--text-color);opacity:.7;font-size:.9rem}.timeline-scroll-indicator span{display:inline-flex;align-items:center;gap:.5rem}.timeline-item:hover{transform:translate(5px);background:#1a1a1a99;box-shadow:var(--glass-shadow)}.timeline-item:last-child{margin-bottom:0}.timeline-item h3{color:var(--primary-color);margin-bottom:.5rem}.location{color:var(--text-color);opacity:.7;font-size:.9rem;margin-bottom:1rem}.timeline-item ul{list-style-type:none;padding-left:1rem}.timeline-item li{margin-bottom:.5rem;position:relative;color:var(--text-color)}.timeline-item li:before{content:"•";color:var(--primary-color);position:absolute;left:-1rem}.github-link,.blog-link{text-align:center;margin-top:1rem}.github-link a,.blog-link a{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;background:#4a90e2e6;color:#fff;text-decoration:none;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.github-link a:hover,.blog-link a:hover{background:#2d7cd6f2;transform:translateY(-3px) scale(1.02);box-shadow:0 8px 20px #4a90e24d}.social-links{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.social-links a{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;background:#4a90e2e6;color:#fff;text-decoration:none;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.social-links a:hover{background:#2d7cd6f2;transform:translateY(-3px) scale(1.02);box-shadow:0 8px 20px #4a90e24d}.callout{text-align:center;background:linear-gradient(135deg,#4a90e2cc,#357abdcc);color:#fff;padding:2rem;border-radius:16px;margin-top:3rem;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 40px #4a90e24d}.callout blockquote{border-left:none;color:#fff;font-size:1.1rem}.fade-in{animation:fadeIn .8s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}section:nth-child(1){animation-delay:.1s}section:nth-child(2){animation-delay:.2s}section:nth-child(3){animation-delay:.3s}section:nth-child(4){animation-delay:.4s}section:nth-child(5){animation-delay:.5s}@media(max-width:768px){.container{padding:1rem}section{padding:1.5rem}.skill-grid{grid-template-columns:1fr}.social-links{flex-direction:column;align-items:center}.social-links a{width:100%;justify-content:center}h1{font-size:2rem}.timeline-track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding:1rem 0;margin:0 -2rem;padding:0 2rem}.timeline-track::-webkit-scrollbar{display:none}.timeline-item{scroll-snap-align:start;flex:0 0 85%;margin-right:1rem}.timeline-scroll-indicator{display:block;animation:fadeInOut 2s ease-in-out infinite}@keyframes fadeInOut{0%,to{opacity:.3}50%{opacity:.7}}}@media(min-width:769px){.timeline-track{flex-direction:column}.timeline-item{margin-bottom:2rem}.timeline-item:last-child{margin-bottom:0}}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:3rem;height:3rem;border-radius:50%;background:#4a90e2e6;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 12px #0003;z-index:1000}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{background:#2d7cd6f2;transform:translateY(-3px);box-shadow:0 6px 16px #4a90e24d}@media(max-width:768px){.scroll-to-top{bottom:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem;font-size:1rem}}.theme-toggle{position:fixed;top:2rem;right:2rem;width:3rem;height:3rem;border-radius:50%;background:#4a90e2e6;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 12px #0003;z-index:1000}.theme-toggle:hover{background:#2d7cd6f2;transform:translateY(-3px);box-shadow:0 6px 16px #4a90e24d}@media(max-width:768px){.theme-toggle{top:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem;font-size:1rem}}.terminal-window{background:#1e1e1e;border-radius:12px;border:1px solid var(--glass-border);box-shadow:0 20px 40px #0006;overflow:hidden;margin-top:2rem;font-family:Fira Code,Courier New,Courier,monospace;transition:transform .3s ease,box-shadow .3s ease,background-color .5s ease}[data-theme=light] .terminal-window{background:#fff;box-shadow:0 20px 40px #00000014}.terminal-window:hover{transform:translateY(-5px);box-shadow:0 25px 50px #00000080}[data-theme=light] .terminal-window:hover{box-shadow:0 25px 50px #0000001f}.terminal-header{background:#2d2d2d;padding:.75rem 1rem;display:flex;align-items:center;border-bottom:1px solid #3d3d3d;transition:background-color .5s ease,border-color .5s ease}[data-theme=light] .terminal-header{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.terminal-buttons{display:flex;gap:8px;margin-right:1.5rem}.terminal-buttons .btn{width:12px;height:12px;border-radius:50%;display:inline-block}.terminal-buttons .close{background:#ff5f56}.terminal-buttons .minimize{background:#ffbd2e}.terminal-buttons .maximize{background:#27c93f}.terminal-title{color:#858585;font-size:.9rem;text-align:center;flex-grow:1;margin-right:3rem}.terminal-body{padding:1.5rem;overflow-x:auto;font-size:.95rem;line-height:1.6;color:#ccc;transition:color .5s ease}[data-theme=light] .terminal-body{color:#333}.terminal-body pre{margin:0;white-space:pre-wrap;word-wrap:break-word}.json-key{color:#9cdcfe;transition:color .5s ease}[data-theme=light] .json-key{color:#0451a5}.json-string{color:#ce9178;transition:color .5s ease}[data-theme=light] .json-string{color:#a31515}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin:2rem 0}.project-item{background:var(--card-bg);padding:1.5rem;border-radius:12px;border:1px solid var(--glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .3s ease,box-shadow .3s ease}.project-item:hover{transform:translateY(-5px);box-shadow:var(--glass-shadow)}.project-item h3{color:var(--primary-color);margin-bottom:1rem;font-size:1.3rem}.project-item p{color:var(--text-color);margin-bottom:1.5rem;opacity:.9}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-tech span{background:#4a90e21a;color:var(--primary-color);padding:.3rem .8rem;border-radius:20px;font-size:.9rem}.project-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .3s ease}.project-link:hover{color:var(--secondary-color)}@media(max-width:768px){.terminal-body{font-size:.85rem;padding:1rem}.project-grid{grid-template-columns:1fr}}.blog-link{text-align:center;margin-top:1rem}.blog-link a{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.5rem;background:var(--primary-color);color:#fff;text-decoration:none;border-radius:8px;transition:all .3s ease}.blog-link a:hover{background:var(--secondary-color);transform:translateY(-2px)}.grid-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;background-color:var(--background-color);background-image:linear-gradient(to right,var(--grid-color) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-color) 1px,transparent 1px);background-size:40px 40px;background-position:center center;transition:background-color .5s ease}.grid-bg:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 50% 50%,var(--grid-accent) 0%,transparent 30%);animation:floatingAccent 20s infinite ease-in-out alternate;pointer-events:none}@keyframes floatingAccent{0%{transform:translate(0)}25%{transform:translate(15%,15%)}50%{transform:translate(25%,-5%)}75%{transform:translate(-10%,-15%)}to{transform:translate(-15%,10%)}}.container{position:relative;z-index:1}.scroll-blur{display:none}.blog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin:2rem 0}.blog-post{background:var(--card-bg);padding:1.5rem;border-radius:12px;border:1px solid var(--glass-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}.blog-post:hover{transform:translateY(-5px);box-shadow:var(--glass-shadow)}.blog-post h3{color:var(--primary-color);margin-bottom:.5rem;font-size:1.3rem}.post-meta{font-size:.9rem;color:var(--text-color);margin-bottom:1rem;opacity:.8}.post-excerpt{color:var(--text-color);opacity:.9;margin-bottom:1.5rem;flex-grow:1}.read-more{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .3s ease;align-self:flex-start}.read-more:hover{color:var(--secondary-color)}.tabs-nav{display:flex;justify-content:center;overflow-x:auto;background:#252526;border-bottom:1px solid #1e1e1e;margin-bottom:2rem;scrollbar-width:none;border-radius:8px 8px 0 0}.tabs-nav::-webkit-scrollbar{display:none}[data-theme=light] .tabs-nav{background:#ececec;border-bottom:1px solid #cccccc}.tab-btn{background:transparent;border:none;color:#969696;padding:.75rem 1.5rem;font-family:Fira Code,Courier New,Courier,monospace;font-size:.9rem;cursor:pointer;border-top:2px solid transparent;border-right:1px solid #1e1e1e;display:flex;align-items:center;gap:.5rem;white-space:nowrap;transition:background-color .2s,color .2s}[data-theme=light] .tab-btn{color:#616161;border-right:1px solid #cccccc}.tab-btn:last-child{border-right:none}[data-theme=light] .tab-btn:last-child{border-right:none}.tab-btn:hover{background:#2d2d2d;color:#ccc}[data-theme=light] .tab-btn:hover{background:#e3e3e3;color:#333}.tab-btn.active{background:var(--background-color);color:#007acc;border-top:2px solid #007acc;border-bottom:1px solid transparent;margin-bottom:-1px}[data-theme=light] .tab-btn.active{background:var(--background-color);color:#007acc;border-top:2px solid #007acc}.tab-btn i{color:#519aba}[data-theme=light] .tab-btn i{color:#007acc}.tab-content{display:none;animation:fadeIn .3s ease-in-out}.tab-content.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
