*{margin:0;padding:0;box-sizing:border-box}:root{font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.7;font-weight:400;color:#ffffffe6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background:linear-gradient(-45deg,#0a0015,#1a0a2e,#16001e,#0d0221);background-size:400% 400%;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#root{min-height:100vh}a{color:#a78bfa;text-decoration:none;transition:color .2s ease}a:hover{color:#c4b5fd}code,.mono{font-family:JetBrains Mono,Fira Code,monospace}.app{min-height:100vh;display:flex;flex-direction:column}.home{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1.5rem 8rem}.terminal-window{width:100%;max-width:1400px;background:#000000b3;border-radius:8px;overflow:hidden;box-shadow:0 20px 40px #0009;border:1px solid rgba(167,139,250,.15)}.terminal-header{background:#140a28e6;padding:.6rem 1.2rem;display:flex;align-items:center;gap:.8rem;border-bottom:1px solid rgba(167,139,250,.08)}.terminal-dots{display:flex;gap:.5rem}.dot{width:12px;height:12px;border-radius:50%}.dot.red{background:#ff5f56}.dot.yellow{background:#ffbd2e}.dot.green{background:#27ca40}.terminal-title{color:#ffffff80;font-family:JetBrains Mono,monospace;font-size:.8rem}.terminal-body{padding:1.25rem 1.5rem;font-family:JetBrains Mono,monospace;font-size:.85rem;line-height:1.5;max-height:500px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.terminal-body::-webkit-scrollbar{display:none}.terminal-line{display:flex;gap:.6rem;margin-bottom:.15rem}.prompt{color:#a78bfa;font-weight:600}.command{color:#22d3ee}.terminal-output{color:#fffc;margin-bottom:.8rem;padding-left:1.2rem}.name-output{font-size:1.3rem;font-weight:700;color:#fff;font-family:Inter,sans-serif}.typing{color:#a78bfa;font-size:.85rem}.cursor{animation:blink 1s infinite;color:#a78bfa}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.about-output p{margin:.25rem 0;color:#ffffffb3}.skills-output{display:flex;gap:1.2rem;flex-wrap:wrap}.folder{color:#22d3ee}.tree-output{display:flex;flex-direction:column;gap:.6rem}.tree-section{display:flex;flex-direction:column}.tree-folder{color:#22d3ee;font-weight:600;margin-bottom:.15rem}.tree-item{color:#ffffff8c;padding-left:.4rem;font-size:.8rem}.terminal-line.active{margin-top:.8rem;margin-bottom:0}.cursor-blink{color:#a78bfa;animation:blink 1s infinite}.nav-buttons{position:fixed;bottom:2.5rem;right:3rem;display:flex;flex-direction:row;gap:.75rem;z-index:100}.nav-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#ffffffe6;text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s ease}.nav-btn:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff}.nav-btn.primary{background:#a78bfa;border-color:#a78bfa;color:#0a0015}.nav-btn.primary:hover{background:#c4b5fd;border-color:#c4b5fd}.nav-icon{font-size:.9rem}.footer{padding:1.5rem;text-align:center;color:#fff6;font-size:.85rem;background:#0003;margin-top:auto}@media(max-width:768px){.home{padding:1.5rem;margin-bottom:20rem}.terminal-window{max-width:100%}.terminal-body{padding:1rem;font-size:.8rem}.name-output{font-size:1.25rem}.typing{font-size:.9rem}.skills-output{gap:1rem}.tree-output{font-size:.8rem}.nav-buttons{position:fixed;bottom:1.5rem;right:1.5rem;left:1.5rem;flex-direction:column}.nav-btn{width:100%;justify-content:center}}@media(max-width:480px){.home{margin-bottom:22rem}.terminal-body{font-size:.75rem}.name-output{font-size:1.1rem}.tree-item{font-size:.75rem}}.cv-page{min-height:100vh;padding:1rem;width:100%}.cv-header{margin-bottom:1rem;text-align:center}.cv-header .back-button{display:inline-block;color:#a78bfa;font-size:.95rem;margin-bottom:1rem;transition:transform .2s ease;text-decoration:none}.cv-header .back-button:hover{transform:translate(-5px)}.cv-header h1{font-size:2.2rem;font-weight:800;color:#fff;margin-bottom:.5rem}.cv-header p{color:#fff9;font-size:1rem}.cv-container{display:flex;flex-direction:column;gap:1rem;width:100%}.language-selector{display:flex;gap:.5rem;justify-content:center}.lang-btn{padding:.75rem 1.5rem;background:#ffffff0d;border:1px solid rgba(167,139,250,.2);border-radius:8px;color:#ffffffb3;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.lang-btn:hover{background:#a78bfa1a;border-color:#a78bfa66;color:#fff}.lang-btn.active{background:#a78bfa;border-color:#a78bfa;color:#0a0015}.cv-viewer{background:#ffffff05;border:1px solid rgba(167,139,250,.1);border-radius:12px;overflow:hidden;width:100%}.cv-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;background:#0003;border-bottom:1px solid rgba(167,139,250,.1);justify-content:center}.download-btn,.view-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;font-family:inherit}.download-btn{background:#a78bfa;border:1px solid #a78bfa;color:#0a0015}.download-btn:hover{background:#c4b5fd;border-color:#c4b5fd}.view-btn{background:#ffffff0d;border:1px solid rgba(167,139,250,.2);color:#fffc}.view-btn:hover{background:#a78bfa1a;border-color:#a78bfa66;color:#fff}.btn-icon{font-size:.9rem}.pdf-container{height:95vh;min-height:900px;background:#fff;width:100%}.pdf-viewer{width:100%;height:100%;border:none;background:#fff}@media(max-width:768px){.cv-page{padding:.5rem}.cv-header h1{font-size:1.8rem}.language-selector{flex-direction:row;flex-wrap:wrap;justify-content:center}.lang-btn{min-width:120px;text-align:center}.cv-actions{flex-direction:column;gap:.5rem;padding:.75rem}.download-btn,.view-btn{justify-content:center}.pdf-container{height:92vh;min-height:700px}}@media(max-width:480px){.cv-page{padding:.25rem}.cv-header{padding:0 .5rem}.cv-header h1{font-size:1.6rem}.lang-btn{flex:1;min-width:100px}.cv-actions{padding:.5rem}.pdf-container{height:90vh;min-height:600px}}.project-detail-container{min-height:100vh;padding:4rem 6rem;max-width:1400px;margin:0 auto}.project-detail-header{margin-bottom:3rem}.project-detail-header h1{font-size:2.5rem;font-weight:900;color:#fff;margin-bottom:.5rem}.project-detail-fullname{display:block;font-size:1.1rem;color:#a78bfa;font-style:italic;margin-bottom:1rem}.project-detail-description{font-size:1.15rem;color:#fffc;line-height:1.7;margin-bottom:1.5rem;max-width:800px}.project-detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-detail-tag{background:#a78bfa33;color:#c4b5fd;padding:.35rem .9rem;border-radius:20px;font-size:.9rem;font-weight:500}.github-link{display:inline-block;background:#ffffff1a;color:#fff;border:2px solid rgba(167,139,250,.5);padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s ease}.github-link:hover{background:#ffffff26;border-color:#a78bfa;transform:translateY(-2px)}.readme-container{background:#ffffff08;border:1px solid rgba(167,139,250,.2);border-radius:16px;padding:2rem}.readme-container h2{font-size:1.5rem;color:#a78bfa;margin-bottom:1.5rem;font-weight:700}.readme-content{color:#ffffffd9;line-height:1.8}.readme-content h1{font-size:2rem;color:#fff;margin-top:2rem;margin-bottom:1rem;border-bottom:2px solid rgba(167,139,250,.3);padding-bottom:.5rem}.readme-content h2{font-size:1.6rem;color:#c4b5fd;margin-top:1.5rem;margin-bottom:.75rem}.readme-content h3{font-size:1.3rem;color:#c4b5fd;margin-top:1.25rem;margin-bottom:.5rem}.readme-content p{margin-bottom:1rem}.readme-content code{background:#0006;color:#a78bfa;padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.readme-content pre{background:#0006;border:1px solid rgba(167,139,250,.2);border-radius:8px;padding:1.5rem;overflow-x:auto;margin:1.5rem 0}.readme-content pre code{background:none;padding:0;color:#ffffffe6}.readme-content ul,.readme-content ol{margin-left:2rem;margin-bottom:1rem}.readme-content li{margin-bottom:.5rem}.readme-content a{color:#a78bfa;text-decoration:underline}.readme-content a:hover{color:#c4b5fd}.readme-content img{max-width:100%;border-radius:8px;margin:1.5rem 0}.readme-content blockquote{border-left:4px solid #a78bfa;padding-left:1.5rem;margin:1.5rem 0;color:#ffffffb3;font-style:italic}.readme-error{text-align:center;padding:2rem;color:#ffffffb3}.readme-error p{margin-bottom:1rem}.loading{text-align:center;font-size:1.2rem;color:#ffffffb3;padding:2rem}@media(max-width:768px){.project-detail-container{padding:2rem 1.5rem}.project-detail-header h1{font-size:1.8rem}.project-detail-description{font-size:1rem}.readme-container{padding:1.5rem}.readme-content h1{font-size:1.5rem}.readme-content h2{font-size:1.3rem}.readme-content pre{padding:1rem}}.projects-container{min-height:100vh;padding:4rem 6rem;max-width:1600px;margin:0 auto}.projects-title{font-size:3rem;font-weight:900;color:#fff;margin-bottom:1rem}.projects-subtitle{font-size:1.2rem;color:#ffffffb3;margin-bottom:3rem;max-width:700px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem}.project-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(167,139,250,.2);border-radius:12px;padding:1.75rem;transition:all .3s ease;display:flex;flex-direction:column;min-height:240px}.project-card:hover{border-color:#a78bfa66;box-shadow:0 5px 20px #7c3aed33}.project-header{margin-bottom:.75rem}.project-header h3{font-size:1.35rem;color:#fff;margin-bottom:.25rem;word-break:break-word}.project-fullname{font-size:.85rem;color:#a78bfa;font-style:italic}.project-description{font-size:.95rem;color:#ffffffbf;line-height:1.6;flex:1;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.project-tag{background:#a78bfa33;color:#c4b5fd;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.project-actions{display:flex;gap:1rem;margin-top:auto;flex-wrap:wrap}.read-readme,.view-github{font-size:.85rem;font-weight:500;padding:.5rem 1rem;border-radius:6px;text-decoration:none;transition:all .2s ease}.read-readme{background:#a78bfa33;color:#c4b5fd;border:1px solid rgba(167,139,250,.3)}.read-readme:hover{background:#a78bfa4d;border-color:#a78bfa}.view-github{background:#ffffff0d;color:#fffc;border:1px solid rgba(255,255,255,.2)}.view-github:hover{background:#ffffff1a;color:#fff}@media(max-width:768px){.projects-container{padding:2rem 1.5rem}.projects-title{font-size:2rem}.projects-subtitle{font-size:1rem;margin-bottom:2rem}.projects-grid{grid-template-columns:1fr;gap:1rem}.project-card{padding:1.25rem;min-height:auto}.project-header h3{font-size:1.2rem}.project-description{font-size:.9rem}.project-tag{font-size:.75rem;padding:.2rem .6rem}}@media(max-width:480px){.projects-container{padding:1.5rem 1rem}.projects-title{font-size:1.75rem}.project-card{padding:1rem}}.writeup-detail-container{min-height:100vh;padding:4rem 6rem;max-width:1400px;margin:0 auto}.writeup-header{margin-bottom:2rem}.ctf-badge{display:inline-block;background:#a78bfa33;color:#a78bfa;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600;margin-bottom:1rem}.challenge-title{font-size:2.5rem;font-weight:900;color:#fff;margin-top:1rem;word-break:break-word}.markdown-content{background:#ffffff08;border:1px solid rgba(167,139,250,.2);border-radius:16px;padding:3rem;color:#ffffffd9;line-height:1.8}.markdown-content h1{font-size:2rem;color:#fff;margin-top:2rem;margin-bottom:1rem;border-bottom:2px solid rgba(167,139,250,.3);padding-bottom:.5rem}.markdown-content h2{font-size:1.6rem;color:#c4b5fd;margin-top:1.5rem;margin-bottom:.75rem}.markdown-content h3{font-size:1.3rem;color:#c4b5fd;margin-top:1.25rem;margin-bottom:.5rem}.markdown-content p{margin-bottom:1rem}.markdown-content code{background:#0006;color:#a78bfa;padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.markdown-content pre{background:#0006;border:1px solid rgba(167,139,250,.2);border-radius:8px;padding:1.5rem;overflow-x:auto;margin:1.5rem 0}.markdown-content pre code{background:none;padding:0;color:#ffffffe6}.markdown-content ul,.markdown-content ol{margin-left:2rem;margin-bottom:1rem}.markdown-content li{margin-bottom:.5rem}.markdown-content a{color:#a78bfa;text-decoration:underline}.markdown-content a:hover{color:#c4b5fd}.markdown-content img{max-width:100%;border-radius:8px;margin:1.5rem 0}.markdown-content blockquote{border-left:4px solid #a78bfa;padding-left:1.5rem;margin:1.5rem 0;color:#ffffffb3;font-style:italic}.markdown-content table{width:100%;border-collapse:collapse;margin:1.5rem 0}.markdown-content th,.markdown-content td{border:1px solid rgba(167,139,250,.2);padding:.75rem;text-align:left}.markdown-content th{background:#a78bfa1a;color:#c4b5fd;font-weight:600}@media(max-width:768px){.writeup-detail-container{padding:2rem}.challenge-title{font-size:1.8rem}.markdown-content{padding:1.5rem}.markdown-content h1{font-size:1.6rem}.markdown-content h2{font-size:1.3rem}.markdown-content pre{padding:1rem}}.writeups-page{min-height:100vh;padding:3rem 4rem;max-width:1200px;margin:0 auto}.writeups-header{margin-bottom:2rem}.writeups-header .back-button{display:inline-block;color:#a78bfa;font-size:.95rem;margin-bottom:1.5rem;transition:transform .2s ease}.writeups-header .back-button:hover{transform:translate(-5px)}.writeups-header h1{font-size:2.5rem;font-weight:800;color:#fff;margin-bottom:.5rem}.writeups-header p{color:#ffffff80;font-size:.95rem;margin-bottom:1rem}.header-actions{display:flex;gap:.75rem}.action-btn{background:#ffffff0d;border:1px solid rgba(167,139,250,.2);color:#ffffffb3;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease;font-family:inherit}.action-btn:hover{background:#a78bfa1a;border-color:#a78bfa66;color:#fff}.loading,.error{text-align:center;font-size:1.25rem;color:#fffc;padding:4rem}.error{color:#ff6b6b}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:2rem}.spinner{width:50px;height:50px;border:3px solid rgba(167,139,250,.2);border-top-color:#a78bfa;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:1rem;color:#ffffffb3;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.ctf-accordion{display:flex;flex-direction:column;gap:.5rem}.ctf-item{border-radius:10px;overflow:hidden;background:#ffffff05;border:1px solid rgba(167,139,250,.1);transition:all .2s ease}.ctf-item.expanded{border-color:#a78bfa40;background:#ffffff08}.ctf-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;transition:all .2s ease;font-family:inherit}.ctf-header:hover{background:#a78bfa14}.ctf-icon{font-size:1.1rem}.ctf-name{flex:1;text-align:left;font-size:1rem;font-weight:600;color:#fff}.ctf-count{background:#a78bfa33;color:#c4b5fd;padding:.2rem .6rem;border-radius:10px;font-size:.75rem;font-weight:600}.ctf-chevron{color:#fff6;font-size:.7rem;transition:transform .2s ease}.ctf-chevron.open{transform:rotate(180deg)}.ctf-challenges{padding:.5rem 1rem 1rem;border-top:1px solid rgba(167,139,250,.08)}.challenges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.challenge-link{display:flex;align-items:center;gap:.6rem;padding:.65rem .9rem;background:#0003;border-radius:6px;text-decoration:none;transition:all .2s ease}.challenge-link:hover{background:#a78bfa26;transform:translate(3px)}.challenge-icon{font-size:.9rem;opacity:.7}.challenge-name{color:#ffffffd9;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.challenge-link:hover .challenge-name{color:#fff}.no-challenges{color:#fff6;font-size:.9rem;padding:.5rem;font-style:italic}@media(max-width:768px){.writeups-page{padding:2rem 1.5rem}.writeups-header h1{font-size:2rem}.header-actions{flex-wrap:wrap}.ctf-header{padding:.875rem 1rem}.ctf-name{font-size:.95rem}.challenges-grid{grid-template-columns:1fr}.challenge-link{padding:.75rem 1rem}.challenge-name{font-size:.9rem}}@media(max-width:480px){.writeups-page{padding:1.5rem 1rem}.writeups-header h1{font-size:1.75rem}.action-btn{flex:1;text-align:center}}
