@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700&display=swap";:root{--bg-color:#0f1115;--card-bg:#1a1c22;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--accent-color:#6366f1;--accent-secondary:#06b6d4;--glass-bg:#0f11158c;--glass-border:#ffffff1f;--font-main:"Outfit", sans-serif;--image-opacity:.9;--transition-smooth:background-color .3s ease, border-color .3s ease, box-shadow .3s ease, opacity .3s ease;--nav-padding:1.2rem;--section-padding:100px}*{box-sizing:border-box;min-width:0;margin:0;padding:0}html,body{min-height:100dvh;margin:0;padding:0;background-color:#0000!important}html{scroll-behavior:smooth}body{color:var(--text-primary);font-family:var(--font-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;line-height:1.6;transition:background-color .3s,color .3s}#root{flex-direction:column;width:100%;min-height:100dvh;display:flex;position:relative;overflow-x:hidden}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none;transition:opacity .2s,color .2s}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;font-family:inherit}[data-theme=light]{--bg-color:#f8fafc;--card-bg:#fff;--text-primary:#0f172a;--text-secondary:#64748b;--accent-color:#4f46e5;--accent-secondary:#0891b2;--glass-bg:#ffffffbf;--glass-border:#0f172a1f;--image-opacity:1}.gradient-text{background:linear-gradient(135deg, var(--accent-color), var(--accent-secondary));-webkit-text-fill-color:transparent;white-space:nowrap;-webkit-background-clip:text;background-clip:text}@media (width<=768px){*{-webkit-tap-highlight-color:transparent}}@media (pointer:fine){html,body,*,a,button,[role=button],.card-inner,.project-image-link{cursor:none!important}}.main-layout{z-index:10;padding-bottom:env(safe-area-inset-bottom);background-color:#0000;transition:background-color .3s;position:relative}.content-relative{position:relative}.container{width:100%;max-width:1200px;margin:0 auto;padding-left:4rem;padding-right:4rem}section{padding-top:var(--section-padding);padding-bottom:var(--section-padding)}section h2{margin-bottom:3.5rem;font-size:clamp(2.5rem,6vw,3.5rem);font-weight:700;line-height:1.2}.section-title{text-align:center}@media (width<=1024px){.container{padding-left:2rem;padding-right:2rem}}@media (width>=1600px){.container{max-width:1500px}}@media (width>=2000px){.container{max-width:1800px}html{font-size:18px}section{padding-top:160px;padding-bottom:160px}}@media (width<=768px){section{padding-top:80px;padding-bottom:80px}.container{padding-left:1.5rem;padding-right:1.5rem;justify-content:center!important}.section-title,section h2{margin-bottom:2.5rem}}.bg-effects-container{z-index:-1;pointer-events:none;background-color:var(--bg-color);height:120dvh;position:fixed;top:-10dvh;left:0;right:0;overflow:hidden}.noise-overlay{pointer-events:none;z-index:5;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");position:fixed;inset:0}.mesh-blob{filter:blur(120px);opacity:.3;mix-blend-mode:soft-light;will-change:transform;border-radius:50%;position:absolute}[data-theme=light] .mesh-blob{opacity:.2;mix-blend-mode:multiply}[data-theme=light] .mesh-blob.secondary{display:none}.spotlight{pointer-events:none;z-index:1;filter:blur(60px);mix-blend-mode:screen;background:radial-gradient(circle,#6366f133 0%,#6366f100 70%);border-radius:50%;width:600px;height:600px;position:fixed}[data-theme=light] .spotlight{mix-blend-mode:multiply;background:radial-gradient(circle,#6366f114 0%,#6366f100 70%)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);will-change:transform, backdrop-filter;border-radius:16px;transition:background-color .3s,border-color .3s,box-shadow .3s;overflow:hidden;box-shadow:0 8px 32px #0000005e}.glass:hover{border-color:#ffffff40;transform:translateY(-4px);box-shadow:0 20px 40px -10px #0009,inset 0 1px 1px #ffffff26,0 0 20px #6366f10d}[data-theme=light] .glass{border-color:#0f172a14;box-shadow:0 4px 20px #0f172a14}[data-theme=light] .glass:hover{border-color:#0f172a26;box-shadow:0 12px 30px #0f172a1f}@media (width<=768px){.glass{-webkit-backdrop-filter:blur(8px)}}.glass,.nav-menu,.project-card-inner,.card-inner,.social-item{will-change:transform, opacity;transform:translateZ(0)}.scroll-progress-bar{top:env(safe-area-inset-top);background:var(--accent-color);transform-origin:0%;z-index:2000;pointer-events:none;height:3px;position:fixed;left:0;right:0}nav{transition:all .3s}.nav-container{justify-content:space-between;align-items:center;display:flex}.nav-logo{letter-spacing:-.02em;white-space:nowrap;font-size:1.4rem;font-weight:700;display:block}.nav-menu{display:flex}.nav-link{font-size:.85rem;font-weight:500}@media (width<=768px){.nav-logo{display:none!important}.nav-menu{width:auto}.nav-link{font-size:.75rem!important}}.hero-section{align-items:center;min-height:100dvh;display:flex;position:relative}.hero-tagline{letter-spacing:.05em;margin-bottom:.2rem;font-size:1.1rem;font-weight:600}.hero-title{letter-spacing:-.02em;margin-bottom:2rem;font-size:clamp(2.5rem,8vw,4.5rem);font-weight:600;line-height:1.1}.hero-description{color:var(--text-secondary);opacity:.9;max-width:650px;margin-bottom:3.5rem;font-size:clamp(1.1rem,2.5vw,1.4rem);font-weight:400}.social-links{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.social-item{align-items:center;gap:.75rem;padding:.8rem 1.8rem;font-weight:600;display:flex}.social-item:hover{background:var(--glass-bg);border-color:#ffffff40}[data-theme=light] .social-item:hover{border-color:#0f172a40}.scroll-indicator{color:var(--text-secondary);opacity:.6;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-text{letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:500}.project-card-grid{flex-direction:column;gap:4rem;display:flex}.project-card-inner{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));width:100%;display:grid;overflow:hidden}.project-content{min-width:0;padding:clamp(1.5rem,5vw,3rem)}.project-image-container{background:var(--card-bg);justify-content:center;align-items:center;min-height:400px;padding:1.5rem;display:flex;position:relative;overflow:hidden}.project-image-container.small{aspect-ratio:16/10;min-height:auto;padding:1.2rem}.project-image{object-fit:cover;width:100%;height:100%;opacity:var(--image-opacity,.9);border:1px solid var(--glass-border);transition:var(--transition-smooth);border-radius:12px;box-shadow:0 15px 35px -10px #0009}[data-theme=light] .project-image{border-color:#0f172a0d;box-shadow:0 10px 25px -5px #0f172a1a}.featured-label{text-transform:uppercase;font-size:.9rem;font-weight:600}.featured-title{margin:1rem 0;font-size:2rem;font-weight:700}.project-info-group{margin-bottom:2rem}.project-info-group.large{margin-bottom:2.5rem}.project-text{color:var(--text-secondary)}.tech-list{flex-wrap:wrap;gap:.75rem;display:flex}.image-placeholder{background:var(--glass-bg);border:1px dashed var(--glass-border);width:100%;height:100%;color:var(--text-secondary);border-radius:12px;justify-content:center;align-items:center;font-size:.9rem;display:flex}.project-image-link{width:100%;height:100%;display:block;position:relative}.project-link-icon{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);width:40px;height:40px;color:var(--text-primary);z-index:2;transition:var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:1.2rem;right:1.2rem}.project-link-icon:hover{background:var(--accent-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.project-badge{border:1px solid var(--glass-border);background:#ffffff0d;border-radius:100px;padding:.4rem .8rem;font-size:.8rem}.project-section-title{color:var(--accent-secondary);margin-bottom:.5rem;font-size:1rem}.project-section-title.alt{color:var(--accent-color)}.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(clamp(300px,20vw,450px),1fr));gap:2.5rem;display:grid}.card-inner{flex-direction:column;height:100%;padding:0;display:flex;overflow:hidden}.card-content{flex-direction:column;flex-grow:1;gap:1rem;padding:2rem;display:flex}.card-title{color:var(--text-primary);font-size:1.4rem;font-weight:700}.card-description{color:var(--text-secondary);flex-grow:1;font-size:.95rem;line-height:1.6}.card-tags{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.card-tag{color:var(--accent-secondary);font-size:.75rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2.5rem;margin-top:3rem;display:grid}.skill-card{padding:2rem}.skill-category{color:var(--accent-color);margin-bottom:1.5rem;font-size:1.25rem;font-weight:600}.skills-list{flex-wrap:wrap;gap:.75rem;display:flex}.skill-badge{background:#6366f10d;padding:.5rem 1rem;font-size:.9rem}.contact-container{max-width:1000px;margin:0 auto;padding:clamp(2rem,8vw,5rem)}.contact-header{text-align:center;margin-bottom:4rem}.contact-header p{color:var(--text-secondary);font-size:1.1rem}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:3rem;display:grid}.contact-info{flex-direction:column;gap:2rem;display:flex}.contact-info-item{align-items:center;gap:1.5rem;display:flex}.contact-icon-wrapper{width:60px;height:60px;color:var(--accent-color);flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-info-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.85rem}.contact-info-value{font-size:1.1rem;font-weight:600}.contact-form{flex-direction:column;gap:1.5rem;display:flex}.contact-input,.contact-textarea{border:1px solid var(--glass-border);width:100%;color:var(--text-primary);resize:none;transition:var(--transition-smooth);background:#ffffff0d;border-radius:12px;outline:none;padding:1rem 1.25rem;font-family:inherit;font-size:1rem}[data-theme=light] .contact-input,[data-theme=light] .contact-textarea{background:#00000008;border:1px solid #0f172a1a}.contact-input:hover,.contact-textarea:hover{background:#ffffff14;border-color:#ffffff4d}[data-theme=light] .contact-input:hover,[data-theme=light] .contact-textarea:hover{background:#0000000d;border-color:#0f172a40}.contact-input:focus,.contact-textarea:focus{border-color:var(--accent-color);background:#ffffff14;box-shadow:0 0 0 3px #6366f126}[data-theme=light] .contact-input:focus,[data-theme=light] .contact-textarea:focus{background:#0000000d;box-shadow:0 0 0 3px #6366f126}.contact-submit{background:linear-gradient(135deg, var(--accent-color), var(--accent-secondary));color:#fff;transition:var(--transition-smooth);border-radius:12px;justify-content:center;align-items:center;gap:.75rem;padding:1.25rem;font-size:1rem;font-weight:600;display:flex}.contact-submit:hover{box-shadow:0 10px 20px -10px var(--accent-color);filter:brightness(1.1)}.modal-overlay{z-index:5000;background:#0006;justify-content:center;align-items:center;padding:2rem;transition:background .3s;display:flex;position:fixed;inset:0}[data-theme=light] .modal-overlay{background:#fff6}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006;position:absolute;inset:0}.modal-content-wrapper{background:var(--glass-bg);-webkit-backdrop-filter:blur(25px);border:1px solid var(--glass-border);z-index:5001;border-radius:28px;flex-direction:column;width:100%;max-width:1000px;max-height:88dvh;display:flex;position:relative;overflow:hidden;box-shadow:0 50px 100px -20px #0009,inset 0 1px 1px #ffffff26}[data-theme=light] .modal-content-wrapper{border-color:#0f172a1a;box-shadow:0 40px 80px -20px #0f172a26}.modal-close-btn{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;width:38px;height:38px;transition:var(--transition-smooth);background:#0000004d;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:1.25rem;right:1.25rem}.modal-close-btn:hover{background:var(--accent-color);transform:rotate(90deg)scale(1.1)}.modal-scroll-area{scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent;flex:1;overflow-y:auto}.modal-hero-image{background:var(--card-bg);border-bottom:1px solid var(--glass-border);width:100%;height:380px;position:relative}.modal-hero-image img{object-fit:cover;width:100%;height:100%;display:block}.modal-image-overlay{background:linear-gradient(#0000 50%,#000000b3 100%);position:absolute;inset:0}.modal-body{padding:clamp(1.25rem,4vw,2.5rem)}.modal-header{justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem;display:flex}.modal-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-secondary);margin-bottom:.25rem;font-size:.8rem;font-weight:600;display:block}.modal-title{letter-spacing:-.02em;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:700;line-height:1.2}.modal-actions{flex-shrink:0;margin-top:.25rem}.modal-action-btn.github{background:var(--text-primary);color:var(--bg-color);transition:var(--transition-smooth);border-radius:10px;align-items:center;gap:.6rem;padding:.6rem 1.1rem;font-size:.9rem;font-weight:700;display:flex;box-shadow:0 4px 15px #0003}.modal-action-btn.github:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.modal-grid{grid-template-columns:1fr 220px;gap:2rem;display:grid}.modal-section{margin-bottom:1.25rem}.modal-section-title{color:var(--accent-color);align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:1rem;font-weight:700;display:flex}.modal-text{color:var(--text-secondary);word-break:keep-all;font-size:.95rem;line-height:1.7}.modal-list{flex-direction:column;gap:.5rem;display:flex}.modal-list-item{color:var(--text-secondary);align-items:flex-start;gap:.6rem;font-size:.95rem;line-height:1.5;display:flex}.modal-sidebar-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin-bottom:1rem;font-size:.9rem;font-weight:700}.modal-tech-tags{flex-wrap:wrap;gap:.5rem;display:flex}.modal-tag{color:var(--accent-color);background:#6366f114;border:1px solid #6366f126;border-radius:6px;padding:.35rem .75rem;font-size:.8rem;font-weight:600}@media (width<=1024px){.modal-grid{grid-template-columns:1fr;gap:3rem}}@media (width<=768px){.modal-overlay{align-items:center;padding:1.5rem 1rem}.modal-content-wrapper{max-height:90dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:24px;width:100%;margin:0 auto}.modal-hero-image{height:200px}.modal-header{flex-direction:column;align-items:flex-start;gap:1.25rem}.modal-actions{width:100%}.modal-action-btn{justify-content:center;width:100%}.modal-body{padding:1.5rem 1.25rem 3rem}}.footer{padding:4rem 0;padding-bottom:calc(4rem + env(safe-area-inset-bottom));text-align:center;border-top:1px solid var(--glass-border)}.footer-text{color:var(--text-secondary);font-size:.9rem}.floating-controls{bottom:calc(2rem + env(safe-area-inset-bottom));z-index:1000;flex-direction:column;gap:1rem;display:flex;position:fixed;right:2rem}.floating-btn{width:56px;height:56px;color:var(--text-primary);transition:var(--transition-smooth);justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 10px 40px -10px #0009,inset 0 1px 1px #ffffff26;border-radius:50%!important;overflow:visible!important}.floating-btn:hover{transform:translateY(-4px)scale(1.05);box-shadow:0 20px 50px -10px #000c,inset 0 1px 1px #fff3}.floating-btn-text{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);opacity:0;transition:var(--transition-smooth);pointer-events:none;white-space:nowrap;color:var(--text-primary);border-radius:6px;margin-right:12px;padding:4px 10px;font-size:.75rem;font-weight:600;position:absolute;right:100%;transform:translate(10px)}.floating-btn:hover .floating-btn-text{opacity:1;transform:translate(0)}.theme-toggle-btn{display:none}@media (width<=768px){.theme-toggle-btn{bottom:calc(1.5rem + env(safe-area-inset-bottom))!important;width:48px!important;height:48px!important;right:1.5rem!important}}.custom-cursor-dot{background-color:var(--accent-color);pointer-events:none;z-index:20000;border-radius:50%;width:8px;height:8px;position:fixed;box-shadow:0 0 10px #6366f180}[data-theme=light] .custom-cursor-dot{mix-blend-mode:normal;background-color:var(--accent-color)}.custom-cursor-ring{border:1.5px solid var(--accent-color);pointer-events:none;z-index:19999;border-radius:50%;width:32px;height:32px;transition:width .3s,height .3s,border-color .3s;position:fixed}[data-theme=light] .custom-cursor-ring{mix-blend-mode:normal;border-color:var(--accent-color);background-color:#6366f10d}
