@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--bg-color:#09090b;--text-main:#f8fafc;--text-muted:#94a3b8;--accent:#3b82f6;--accent-glow:#3b82f680;--card-bg:#ffffff08;--card-border:#ffffff14}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);font-family:Outfit,sans-serif;line-height:1.6;overflow:hidden}#root{height:100vh}.app-wrapper{scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none;height:100vh;overflow-y:scroll}.app-wrapper::-webkit-scrollbar{display:none}.snap-section{scroll-snap-align:start;flex-direction:column;justify-content:center;min-height:100vh;padding:4rem 0;display:flex;position:relative;overflow-x:hidden}.scroll-indicators{z-index:50;flex-direction:column;gap:1.2rem;display:flex;position:fixed;top:50%;right:2rem;transform:translateY(-50%)}.indicator-dot{cursor:pointer;background:#fff6;border:1px solid #fff3;border-radius:50%;width:12px;height:12px;transition:all .3s;box-shadow:0 0 5px #00000080}.indicator-dot:hover{background:#ffffff80}.indicator-dot.active{background:var(--accent);box-shadow:0 0 12px var(--accent-glow);transform:scale(1.3)}.glass-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--card-border);backface-visibility:hidden;will-change:transform, opacity;border-radius:16px;padding:2rem;transition:all .3s}.glass-card:hover{border-color:#ffffff26;transform:translateY(-5px);box-shadow:0 10px 30px -10px #00000080}.text-gradient{color:#60a5fa}.container{max-width:1200px;margin:0 auto;padding-left:2rem;padding-right:2rem}.hero-container{z-index:2;width:100%;padding:0 2rem;position:relative}@media (width>=1024px){.hero-container{padding-left:10vw}}.hero-bg{z-index:0;opacity:.35;filter:grayscale(20%);background-image:url(/images/introbg2.png);background-position:50%;background-size:cover;width:100%;height:100%;position:absolute;top:0;left:0}.hero-overlay{z-index:1;background:linear-gradient(90deg,#09090bcc 0%,#09090b66 45%,#09090b00 100%);width:100%;height:100%;position:absolute;top:0;left:0}.section{padding:100px 0}.btn-primary{color:#fff;cursor:pointer;box-shadow:0 4px 15px var(--accent-glow);background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:30px;align-items:center;gap:8px;padding:12px 28px;font-size:1rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf699}.bento-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:3rem;display:grid}.project-img{border-radius:12px;width:100%;height:auto;margin-bottom:1rem}.skill-tag{color:var(--text-muted);background:#ffffff1a;border-radius:20px;padding:4px 12px;font-size:.85rem}.tech-bubbles-container{flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-top:1.5rem;display:flex}.tech-bubble{width:80px;height:80px;color:var(--text-muted);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;font-size:2.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.tech-bubble:after{content:attr(data-name);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#0f172ae6;border-radius:6px;padding:4px 10px;font-size:.8rem;font-weight:500;transition:all .3s;position:absolute;top:-35px;left:50%;transform:translate(-50%)translateY(10px)}.tech-bubble:hover,.tech-bubble:focus{color:#fff;border-color:var(--accent);box-shadow:0 10px 25px -5px var(--accent-glow);background:#ffffff1a;outline:none;transform:translateY(-8px)scale(1.1)}.tech-bubble:hover:after,.tech-bubble:focus:after{opacity:1;transform:translate(-50%)translateY(0)}.hero-content-shift{max-width:800px}@media (width>=1024px){.hero-content-shift{transform:none}}.hero-title{margin-bottom:1.5rem;font-size:4.5rem;font-weight:800;line-height:1.1}.hero-subtitle{color:var(--text-muted);max-width:600px;margin-bottom:2.5rem;font-size:1.2rem}.section-title{margin-bottom:1rem;font-size:2.5rem}@media (width<=768px){.snap-section{padding:2rem 0 5rem}.hero-title{font-size:2.5rem}.hero-bg{background-position:57%}.hero-subtitle{font-size:1rem}.section-title{font-size:2rem}.section{padding:60px 0}.container{padding-left:1.2rem;padding-right:1.2rem}.bento-grid{grid-template-columns:1fr}.glass-card{padding:1.5rem}.btn-primary{padding:10px 20px;font-size:.9rem}.app-wrapper nav{justify-content:center!important;padding:1.5rem!important}}.modal-overlay{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:9999;background:#09090b99;justify-content:center;align-items:center;width:100vw;height:100vh;padding:2rem;display:flex;position:fixed;top:0;left:0}.modal-content{background:#0f172acc;border-radius:20px;width:100%;max-width:900px;max-height:85vh;padding:2.5rem;position:relative;overflow-y:auto}.modal-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;transition:all .3s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.modal-close:hover{background:#fff3;transform:scale(1.1)}.modal-grid{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}.modal-img{object-fit:contain;background:#0003;border-radius:12px;width:100%;height:auto;max-height:60vh;margin-bottom:0}@media (width<=768px){.modal-grid{grid-template-columns:1fr;gap:1.5rem}.modal-img{max-height:35vh}}.project-card{cursor:pointer}.project-card:hover{border-color:#3b82f680;transform:translateY(-8px);box-shadow:0 15px 35px -5px #3b82f64d}.about-text-card{max-width:60%}@media (width<=900px){.about-text-card{max-width:100%}}@media (width<=768px){.about-text-card .glass-card{-webkit-backdrop-filter:blur(24px)!important;backdrop-filter:blur(24px)!important;isolation:auto!important;will-change:auto!important;background:#0009!important;transform:none!important}}.lanyard-wrapper{z-index:0;transform-origin:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;transform:scale(1)}.border-glow-card{--edge-proximity:0;--cursor-angle:45deg;--edge-sensitivity:30;--color-sensitivity:calc(var(--edge-sensitivity) + 20);--border-radius:28px;--glow-padding:40px;--cone-spread:25;border-radius:var(--border-radius);isolation:isolate;background:var(--card-bg,#120f17);border:1px solid #ffffff26;display:grid;position:relative;overflow:visible;transform:translateZ(.01px);box-shadow:0 1px 2px #0000001a,0 2px 4px #0000001a,0 4px 8px #0000001a,0 8px 16px #0000001a,0 16px 32px #0000001a,0 32px 64px #0000001a}.border-glow-card--light{border-color:#18181b1f;box-shadow:0 1px 2px #18181b0a,0 8px 24px #18181b0d}.border-glow-card--light:after,.border-glow-card--light>.edge-light{mix-blend-mode:normal}.border-glow-card:after,.border-glow-card>.edge-light{content:"";border-radius:inherit;z-index:-1;transition:opacity .25s ease-out;position:absolute;inset:0}.border-glow-card:not(:hover):not(.sweep-active):after,.border-glow-card:not(:hover):not(.sweep-active)>.edge-light{opacity:0;transition:opacity .75s ease-in-out}.border-glow-wrapper{border-radius:inherit;pointer-events:none;z-index:-1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));transition:opacity .25s ease-out;position:absolute;inset:0}.border-glow-card:not(:hover):not(.sweep-active) .border-glow-wrapper{opacity:0;transition:opacity .75s ease-in-out}.border-glow-mesh{border-radius:inherit;background:var(--gradient-one) border-box, var(--gradient-two) border-box, var(--gradient-three) border-box, var(--gradient-four) border-box, var(--gradient-five) border-box, var(--gradient-six) border-box, var(--gradient-seven) border-box, var(--gradient-base) border-box;-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.border-glow-card:after{background:var(--gradient-one,radial-gradient(at 80% 55%, #be85ff 0px, transparent 50%)) padding-box, var(--gradient-two,radial-gradient(at 69% 34%, #ff7a93 0px, transparent 50%)) padding-box, var(--gradient-three,radial-gradient(at 8% 6%, #8fffad 0px, transparent 50%)) padding-box, var(--gradient-four,radial-gradient(at 41% 38%, #47daff 0px, transparent 50%)) padding-box, var(--gradient-five,radial-gradient(at 86% 85%, #7af2ff 0px, transparent 50%)) padding-box, var(--gradient-six,radial-gradient(at 82% 18%, #ffe74c 0px, transparent 50%)) padding-box, var(--gradient-seven,radial-gradient(at 51% 4%, #ff8d70 0px, transparent 50%)) padding-box, var(--gradient-base,linear-gradient(#c299ff 0 100%)) padding-box;-webkit-mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), radial-gradient(ellipse at 66% 66%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 66% 33%, black 5%, transparent 40%), radial-gradient(ellipse at 33% 66%, black 5%, transparent 40%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);opacity:calc(var(--fill-opacity,.5) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;border:1px solid #0000;-webkit-mask-composite:source-out,source-over,source-over,source-over,source-over,source-over;mask-composite:subtract,add,add,add,add,add}.border-glow-card>.edge-light{inset:calc(var(--glow-padding) * -1);pointer-events:none;z-index:1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.border-glow-card>.edge-light:before{content:"";inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color,#f5daa3), inset 0 0 1px 0 var(--glow-color-60,#f5daa399), inset 0 0 3px 0 var(--glow-color-50,#f5daa380), inset 0 0 6px 0 var(--glow-color-40,#f5daa366), inset 0 0 15px 0 var(--glow-color-30,#f5daa34d), inset 0 0 25px 2px var(--glow-color-20,#f5daa333), inset 0 0 50px 2px var(--glow-color-10,#f5daa31a), 0 0 1px 0 var(--glow-color-60,#f5daa399), 0 0 3px 0 var(--glow-color-50,#f5daa380), 0 0 6px 0 var(--glow-color-40,#f5daa366), 0 0 15px 0 var(--glow-color-30,#f5daa34d), 0 0 25px 2px var(--glow-color-20,#f5daa333), 0 0 50px 2px var(--glow-color-10,#f5daa31a);position:absolute}.border-glow-inner{z-index:1;flex-direction:column;display:flex;position:relative;overflow:visible}.side-rays-container{pointer-events:none;z-index:0;width:100%;height:100%;position:relative;overflow:hidden}
