:root{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;color:#333;background-color:#e8e0d5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background-color:#e8e0d5;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.015) 3px,rgba(0,0,0,.015) 4px),repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(0,0,0,.015) 3px,rgba(0,0,0,.015) 4px)}#root{min-height:100vh}a{font-weight:500;color:#4a8bdb;text-decoration:none}a:hover{color:#2e6bb0}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:700;color:#222;text-shadow:0 1px 0 rgba(255,255,255,.7)}h1{font-size:3.2em}h2{font-size:2.5em}h3{font-size:2em}p{line-height:1.7;color:#444}button{border-radius:12px;border:none;padding:.6em 1.4em;font-size:1em;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;position:relative;background:linear-gradient(180deg,#6aabef,#4a8bdb 50%,#3a7acc 51%,#5a9de8);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3);box-shadow:0 1px 3px #0006,0 1px #ffffff4d inset,0 -1px #00000026 inset}button:hover{background:linear-gradient(180deg,#7abbf7,#5a9be8 50%,#4a8add 51%,#6aadf5)}button:active{background:linear-gradient(180deg,#3a7acc,#2e6ab8 50%,#255fa8 51%,#3a7acc);box-shadow:0 1px 2px #00000080 inset,0 1px #ffffff1a inset}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#0000001a;border-left:1px solid rgba(0,0,0,.05)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#9a9a9a,#6a6a6a);border-radius:4px;border:1px solid rgba(0,0,0,.2)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#7a7a7a,#5a5a5a)}::selection{background:#4a8bdb66;color:#222}.app{min-height:100vh;display:flex;flex-direction:column}main{flex:1}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}.skeu-panel{background:linear-gradient(180deg,#fff,#f5f3f0);border-radius:12px;border:1px solid rgba(0,0,0,.15);box-shadow:0 2px 6px #0003,0 1px #ffffffe6 inset}.stitched{border:2px dashed rgba(0,0,0,.15);border-radius:10px;padding:4px}.section-paper{background:linear-gradient(180deg,#fefefe,#f8f5f0);box-shadow:0 1px 3px #0000001f,0 -1px #fffc inset}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:linear-gradient(180deg,#6a6a6a,#3d3d3d 45%,#2c2c2c 50%,#3a3a3a);border-bottom:1px solid #1a1a1a;box-shadow:0 1px #ffffff26 inset,0 3px 8px #00000080,0 1px 2px #000000b3}.header-container{max-width:1200px;margin:0 auto;padding:.85rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo h2{margin:0;font-size:1.4rem;font-weight:700;color:#f0f0f0;text-shadow:0 1px 3px rgba(0,0,0,.8),0 -1px 0 rgba(0,0,0,.4);letter-spacing:.5px}.nav{display:flex;gap:.5rem}.nav a{cursor:pointer;font-size:.9rem;font-weight:600;color:#e8e8e8;text-decoration:none;padding:.4rem 1rem;border-radius:8px;transition:all .15s ease;text-shadow:0 1px 2px rgba(0,0,0,.5);border:1px solid transparent;letter-spacing:.2px}.nav a:hover{background:linear-gradient(180deg,#ffffff26,#ffffff0d 50%,#0000001a 51%,#0000000d);border-color:#ffffff1a;color:#fff}.nav a:active{background:#0000004d;color:#ccc}.menu-toggle{display:none;flex-direction:column;background:transparent;border:none;padding:4px;cursor:pointer;gap:5px;box-shadow:none}.menu-toggle span{width:25px;height:2px;background:linear-gradient(180deg,#d0d0d0,#a0a0a0);border-radius:1px;box-shadow:0 1px #00000080;transition:all .3s ease;display:block}@media(max-width:768px){.menu-toggle{display:flex}.nav{position:fixed;top:57px;right:-100%;width:240px;height:calc(100vh - 57px);background:linear-gradient(180deg,#3d3d3d,#2a2a2a);border-left:1px solid #1a1a1a;box-shadow:-4px 0 12px #00000080;flex-direction:column;padding:1rem;gap:.5rem;transition:right .3s ease}.nav-open{right:0}.nav a{font-size:1.1rem;padding:.75rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.05);border-radius:8px}}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;position:relative;margin-top:57px}.hero-content{max-width:1100px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.hero-text{background:linear-gradient(180deg,#fff,#f8f5f0);border-radius:16px;padding:2.5rem;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 16px #0000002e,0 1px #fffffff2 inset,0 -1px #0000000d inset;animation:fadeInUp .8s ease-out;position:relative}.hero-text:before{content:"";position:absolute;top:0;left:0;width:0;height:0;border-style:solid;border-width:0 0 24px 24px;border-color:transparent transparent #e8e0d5 transparent;z-index:2}.hero-text:after{content:"";position:absolute;bottom:-3px;left:5%;right:5%;height:6px;background:radial-gradient(ellipse at center,rgba(0,0,0,.15) 0%,transparent 70%);border-radius:50%}.hero-title{font-size:3rem;margin-bottom:1rem;line-height:1.2;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.8),0 -1px 0 rgba(0,0,0,.1)}.highlight{color:#2e6bb0;text-shadow:0 1px 0 rgba(255,255,255,.6),0 -1px 0 rgba(0,0,0,.2),0 0 8px rgba(74,139,219,.2)}.hero-subtitle{font-size:1.2rem;color:#666;margin-bottom:1rem;font-style:italic;text-shadow:0 1px 0 rgba(255,255,255,.7)}.hero-description{font-size:1rem;line-height:1.7;margin-bottom:2rem;color:#555;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:.5rem 0;border-top:1px solid #e8e4de;border-bottom:1px solid #e8e4de}.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.btn{padding:.75rem 2rem;border-radius:12px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-block;position:relative;transition:all .15s ease;letter-spacing:.3px}.btn-primary{background:linear-gradient(180deg,#6aabef,#4a8bdb 48%,#3272c4 50%,#4a8bdb);color:#fff;text-shadow:0 -1px 1px rgba(0,0,0,.35);border:1px solid #2a60aa;box-shadow:0 1px #fff6 inset,0 4px 8px #0000004d,0 1px 2px #0003}.btn-primary:hover{background:linear-gradient(180deg,#7bbbf8,#5a9be5 48%,#4282d3 50%,#5a9be5);color:#fff;box-shadow:0 1px #fff6 inset,0 6px 12px #0000004d;transform:translateY(-1px)}.btn-primary:active{transform:translateY(1px);box-shadow:0 1px 3px #0000004d inset,0 1px 2px #0003;background:linear-gradient(180deg,#3272c4,#4a8bdb)}.btn-secondary{background:linear-gradient(180deg,#f0ede8,#ddd9d3 48%,#c8c4be 50%,#d8d4ce);color:#444;text-shadow:0 1px 0 rgba(255,255,255,.8);border:1px solid #b0aca6;box-shadow:0 1px #ffffffb3 inset,0 4px 8px #0003,0 1px 2px #00000026}.btn-secondary:hover{background:linear-gradient(180deg,#faf7f2,#eae6e0 48%,#d8d4ce 50%,#e8e4de);color:#333;transform:translateY(-1px)}.btn-secondary:active{transform:translateY(1px);background:linear-gradient(180deg,#c8c4be,#d8d4ce)}.hero-image{display:flex;justify-content:center;align-items:center;animation:fadeIn 1.2s ease-out}.image-placeholder{width:340px;height:340px;border-radius:72px;position:relative;display:flex;justify-content:center;align-items:center;background:linear-gradient(145deg,#4a5568,#2d3748 40%,#1a202c 60%,#2d3748);border:3px solid rgba(0,0,0,.3);box-shadow:0 0 0 1px #ffffff1a inset,0 16px 48px #0006,0 2px 4px #0000004d;overflow:hidden}.image-placeholder:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#fff3,#ffffff0d);border-radius:72px 72px 0 0;z-index:2}.image-placeholder:after{content:"MH";font-size:5rem;font-weight:900;color:#ffffffe6;text-shadow:0 2px 4px rgba(0,0,0,.5),0 0 20px rgba(74,139,219,.5);z-index:3;letter-spacing:-3px}.floating-element{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff80,#4a8bdb99 40%,#1e50a0cc);border:1px solid rgba(255,255,255,.3);box-shadow:0 2px 8px #0000004d;z-index:1}.floating-element:nth-child(1){width:55px;height:55px;top:15%;left:8%;animation:float 3s ease-in-out infinite}.floating-element:nth-child(2){width:70px;height:70px;bottom:18%;right:8%;animation:float 4s ease-in-out infinite;animation-delay:1s}.floating-element:nth-child(3){width:38px;height:38px;top:58%;left:15%;animation:float 3.5s ease-in-out infinite;animation-delay:.5s}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);animation:bounce 2s infinite}.scroll-indicator span{display:block;width:22px;height:34px;border:2px solid rgba(0,0,0,.25);border-radius:11px;position:relative;background:#ffffff4d;box-shadow:0 1px #fff9 inset,0 2px 4px #0003}.scroll-indicator span:before{content:"";position:absolute;top:5px;left:50%;transform:translate(-50%);width:4px;height:8px;background:#0000004d;border-radius:2px;animation:scroll 1.5s infinite}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}@keyframes scroll{0%{opacity:0;transform:translate(-50%) translateY(0)}40%{opacity:1}80%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:0}}@media(max-width:968px){.hero-content{grid-template-columns:1fr;gap:2rem}.hero-title{font-size:2.4rem}.hero-subtitle{font-size:1.1rem}.image-placeholder{width:260px;height:260px;border-radius:56px}.image-placeholder:after{font-size:4rem}}@media(max-width:640px){.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.hero-text{padding:1.5rem}.hero-buttons{flex-direction:column}.btn{width:100%;text-align:center}}.about{padding:6rem 2rem;position:relative}.about-container{max-width:1100px;margin:0 auto}.section-title{font-size:2.2rem;text-align:center;margin-bottom:3rem;position:relative;padding-bottom:1.2rem;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.9),0 -1px 0 rgba(0,0,0,.08)}.section-title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80px;height:4px;background:linear-gradient(90deg,transparent 0%,#4A8BDB 20%,#2E6BB0 50%,#4A8BDB 80%,transparent 100%);border-radius:2px;box-shadow:0 1px 3px #4a8bdb66}.about-content{display:grid;grid-template-columns:2fr 1fr;gap:3rem;margin-bottom:4rem}.about-text{background:linear-gradient(180deg,#fff,#f8f5f0);border-radius:12px;padding:2.5rem;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 12px #00000026,0 1px #ffffffe6 inset;background-image:linear-gradient(180deg,#fff,#f8f5f0),repeating-linear-gradient(180deg,transparent,transparent 29px,rgba(74,139,219,.08) 29px,rgba(74,139,219,.08) 30px);background-blend-mode:normal}.about-text h3{font-size:1.6rem;margin-bottom:1.5rem;color:#2e6bb0;text-shadow:0 1px 0 rgba(255,255,255,.8);padding-bottom:.75rem;border-bottom:2px solid rgba(74,139,219,.2)}.about-text p{font-size:1rem;line-height:1.8;margin-bottom:1.2rem;color:#444;text-shadow:0 1px 0 rgba(255,255,255,.6)}.about-stats{display:flex;flex-direction:column;gap:1.2rem}.stat-card{background:linear-gradient(180deg,#5a9be5,#4a8bdb 48%,#3272c4 50%,#4a8bdb);padding:1.5rem;border-radius:14px;text-align:center;border:1px solid #2a60aa;box-shadow:0 1px #ffffff59 inset,0 6px 16px #00000040,0 1px 3px #0003;transition:all .2s ease;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#ffffff40,#ffffff0d);pointer-events:none}.stat-card:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 1px #ffffff59 inset,0 10px 24px #0000004d}.stat-number{font-size:2.2rem;font-weight:900;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.2);margin-bottom:.4rem;position:relative;z-index:1}.stat-label{font-size:.85rem;font-weight:600;color:#ffffffd9;text-shadow:0 -1px 0 rgba(0,0,0,.25);text-transform:uppercase;letter-spacing:.5px;position:relative;z-index:1}.section-subtitle{font-size:1.8rem;text-align:center;margin-bottom:2.5rem;color:#1a1a1a;position:relative;padding-bottom:1rem;text-shadow:0 1px 0 rgba(255,255,255,.9)}.section-subtitle:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:50px;height:3px;background:linear-gradient(90deg,transparent,#4A8BDB 30%,#2E6BB0 50%,#4A8BDB 70%,transparent);border-radius:2px}.bio-section{margin-top:4rem;padding:3rem 0}.bio-content{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.bio-paragraph{background:linear-gradient(180deg,#fffef9,#fdf9f0);padding:2rem;border-radius:10px;border:1px solid rgba(0,0,0,.1);border-top:4px solid #4A8BDB;box-shadow:0 4px 12px #0000001f,0 1px #ffffffe6 inset;transition:all .2s ease;position:relative}.bio-paragraph:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:60px;height:16px;background:#fff06499;border-radius:2px;box-shadow:0 1px 3px #0003}.bio-paragraph:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 8px 20px #0000002e,0 1px #ffffffe6 inset}.bio-paragraph h4{font-size:1.2rem;margin-bottom:.75rem;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.8)}.bio-paragraph p{font-size:.95rem;line-height:1.8;color:#555}.experience-section{margin-top:4rem;padding:3rem 0}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#888,#555,#888,#555,#888);border-radius:2px;box-shadow:1px 0 #ffffff4d,-1px 0 #0003}.timeline-item{position:relative;margin-bottom:3rem;padding-left:2rem}.timeline-item:last-child{margin-bottom:0}.timeline-dot{position:absolute;left:-2.45rem;top:1.2rem;width:18px;height:18px;background:radial-gradient(circle at 35% 35%,#7ab8f0,#4a8bdb,#2e6bb0);border-radius:50%;border:2px solid #e8e0d5;z-index:1;box-shadow:0 1px #fff9 inset,0 2px 6px #0000004d,0 0 0 2px #4a8bdb4d}.timeline-content{background:linear-gradient(180deg,#fff,#f8f5f0);padding:2rem;border-radius:12px;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px #0000001f,0 1px #ffffffe6 inset;transition:all .2s ease}.timeline-content:hover{transform:translate(6px);box-shadow:0 6px 18px #0000002e,0 1px #ffffffe6 inset}.experience-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.experience-header h4{font-size:1.3rem;color:#2e6bb0;margin-bottom:.4rem;text-shadow:0 1px 0 rgba(255,255,255,.8)}.company-name{font-size:1rem;color:#666;margin:0;text-shadow:0 1px 0 rgba(255,255,255,.7)}.period{font-size:.85rem;font-weight:700;color:#fff;background:linear-gradient(180deg,#7ab8f0,#4a8bdb 48%,#3272c4 50%,#4a8bdb);padding:.35rem 1rem;border-radius:12px;white-space:nowrap;border:1px solid #2a60aa;box-shadow:0 1px #ffffff4d inset,0 2px 4px #0003;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.experience-description{font-size:.95rem;line-height:1.8;color:#555;margin-bottom:1.2rem}.achievements{font-size:.9rem;background:#4a8bdb0a;border-radius:8px;padding:1rem;border:1px solid rgba(74,139,219,.1)}.achievements strong{color:#333;display:block;margin-bottom:.6rem;font-weight:700;text-shadow:0 1px 0 rgba(255,255,255,.7)}.achievements ul{margin:0;padding-left:1.5rem;color:#555}.achievements li{margin-bottom:.5rem;line-height:1.6}.achievements li::marker{color:#4a8bdb}.skills-section{margin-top:4rem}.skills-title{font-size:1.8rem;text-align:center;margin-bottom:2rem;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.9)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.skill-group{background:linear-gradient(180deg,#fff,#f5f2ed);padding:1.75rem;border-radius:14px;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px #0000001a,0 1px #fffffff2 inset;transition:all .2s ease}.skill-group:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000026,0 1px #fffffff2 inset}.skill-group h4{font-size:1.1rem;margin-bottom:1.2rem;color:#2e6bb0;text-shadow:0 1px 0 rgba(255,255,255,.8);padding-bottom:.6rem;border-bottom:1px solid rgba(74,139,219,.2)}.skill-tags{display:flex;flex-wrap:wrap;gap:.6rem}.skill-tag{background:linear-gradient(180deg,#7ab8f0,#4a8bdb 48%,#3272c4 50%,#4a8bdb);color:#fff;padding:.35rem .85rem;border-radius:12px;font-size:.8rem;font-weight:700;border:1px solid #2a60aa;box-shadow:0 1px #ffffff4d inset,0 2px 4px #0003;text-shadow:0 -1px 0 rgba(0,0,0,.25);transition:all .15s ease}.skill-tag:hover{transform:scale(1.05) translateY(-1px);box-shadow:0 1px #ffffff4d inset,0 4px 8px #00000040}@media(max-width:968px){.about-content{grid-template-columns:1fr;gap:2rem}.about-stats{flex-direction:row;justify-content:space-around}.stat-card{flex:1}.bio-content{grid-template-columns:1fr}.timeline{padding-left:1.5rem}.timeline-dot{left:-2.1rem}.experience-header{flex-direction:column}.period{align-self:flex-start}}@media(max-width:640px){.about{padding:4rem 1rem}.section-title{font-size:1.8rem}.section-subtitle{font-size:1.5rem}.about-text{padding:1.5rem}.about-text h3{font-size:1.3rem}.about-stats{flex-direction:column}.skills-grid{grid-template-columns:1fr}.bio-paragraph{padding:1.5rem}.bio-paragraph h4{font-size:1rem}.timeline{padding-left:1rem}.timeline-item{padding-left:1.5rem}.timeline-dot{left:-1.7rem;width:14px;height:14px}.timeline-content{padding:1.5rem}.experience-header h4{font-size:1.1rem}}.projects{padding:6rem 2rem}.projects-container{max-width:1100px;margin:0 auto}.projects .section-subtitle{text-align:center;font-size:1.1rem;color:#777;margin-bottom:3rem;font-style:italic;text-shadow:0 1px 0 rgba(255,255,255,.8)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:2.5rem}.project-card{background:linear-gradient(180deg,#fff,#f5f2ec);border-radius:18px;overflow:hidden;border:1px solid rgba(0,0,0,.12);box-shadow:0 6px 20px #00000026,0 1px #fffffff2 inset;transition:all .25s ease;display:flex;flex-direction:column;position:relative}.project-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 14px 36px #0003,0 1px #fffffff2 inset}.project-image{height:180px;background:linear-gradient(145deg,#3a5f8a,#2a4870,#1e3a60);display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1)}.project-image:after{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#fff3,#ffffff0d);pointer-events:none}.project-image:before{content:"";position:absolute;top:-50%;left:-80%;width:50%;height:200%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.15),transparent);transform:skew(-20deg);transition:left .5s ease}.project-card:hover .project-image:before{left:120%}.project-emoji{font-size:5rem;z-index:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.project-content{padding:2rem;flex:1;display:flex;flex-direction:column}.project-content h3{font-size:1.4rem;margin-bottom:.75rem;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.8)}.project-content p{font-size:.95rem;line-height:1.7;color:#555;margin-bottom:1.5rem;flex:1;text-shadow:0 1px 0 rgba(255,255,255,.5)}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.tech-badge{background:linear-gradient(180deg,#e8f0fa,#d0e4f8);color:#2a5a9a;padding:.3rem .75rem;border-radius:10px;font-size:.8rem;font-weight:700;border:1px solid rgba(74,139,219,.3);box-shadow:0 1px #fffc inset,0 1px 3px #0000001a;text-shadow:0 1px 0 rgba(255,255,255,.6)}.project-links{display:flex;gap:.75rem}.project-link{flex:1;padding:.65rem 1rem;background:linear-gradient(180deg,#f0ede8,#ddd9d3 48%,#c8c4be 50%,#d8d4ce);color:#333;text-align:center;border-radius:10px;text-decoration:none;font-weight:700;font-size:.85rem;border:1px solid rgba(0,0,0,.15);box-shadow:0 1px #ffffffb3 inset,0 2px 4px #00000026;text-shadow:0 1px 0 rgba(255,255,255,.7);transition:all .15s ease}.project-link:hover{background:linear-gradient(180deg,#faf8f3,#eae6e0 48%,#d8d4ce 50%,#e8e4de);color:#222;transform:translateY(-1px);box-shadow:0 1px #ffffffb3 inset,0 4px 8px #0000002e}.project-link:active{transform:translateY(1px);box-shadow:0 1px 2px #0003 inset,0 1px 2px #0000001a}.demo-link{background:linear-gradient(180deg,#7ab8f0,#4a8bdb 48%,#3272c4 50%,#4a8bdb);color:#fff;border-color:#2a60aa;text-shadow:0 -1px 0 rgba(0,0,0,.25);box-shadow:0 1px #ffffff4d inset,0 2px 4px #0003}.demo-link:hover{background:linear-gradient(180deg,#8ac5f8,#5a9be5 48%,#4282d3 50%,#5a9be5);color:#fff}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}}@media(max-width:640px){.projects{padding:4rem 1rem}.project-content{padding:1.5rem}}.blog{padding:6rem 2rem}.blog-container{max-width:1100px;margin:0 auto}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2rem;margin-bottom:3rem}.blog-card{background:linear-gradient(180deg,#fffef9,#fdf9f0);border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 14px #0000001f,0 1px #fffffff2 inset;transition:all .25s ease;display:flex;flex-direction:column;cursor:pointer;position:relative}.blog-card:after{content:"";position:absolute;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 20px 20px;border-color:transparent transparent rgba(0,0,0,.06) transparent;pointer-events:none}.blog-card:hover{transform:translateY(-5px) rotate(.3deg);box-shadow:0 10px 30px #0000002e,0 1px #fffffff2 inset}.blog-image{height:160px;background:linear-gradient(145deg,#4a6b8a,#2a4060);display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.1)}.blog-image:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);pointer-events:none}.blog-image:after{content:"";position:absolute;top:-50%;left:-80%;width:50%;height:200%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.12),transparent);transform:skew(-20deg);transition:left .5s ease}.blog-card:hover .blog-image:after{left:120%}.blog-emoji{font-size:3.5rem;z-index:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.blog-content{padding:1.75rem;flex:1;display:flex;flex-direction:column}.blog-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.8rem;color:#999;font-style:italic;text-shadow:0 1px 0 rgba(255,255,255,.8)}.blog-divider{color:#ccc}.blog-content h3{font-size:1.25rem;margin-bottom:.75rem;color:#1a1a1a;line-height:1.4;text-shadow:0 1px 0 rgba(255,255,255,.8)}.blog-content p{font-size:.9rem;line-height:1.7;color:#666;margin-bottom:1.2rem;flex:1;text-shadow:0 1px 0 rgba(255,255,255,.5)}.blog-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem}.blog-tag{background:linear-gradient(180deg,#e8f0fa,#d0e4f8);color:#2a5a9a;padding:.25rem .65rem;border-radius:8px;font-size:.75rem;font-weight:700;border:1px solid rgba(74,139,219,.25);box-shadow:0 1px #fffc inset,0 1px 2px #00000014;text-shadow:0 1px 0 rgba(255,255,255,.6)}.read-more{color:#4a8bdb;font-weight:700;font-size:.9rem;text-decoration:none;transition:all .2s ease;display:inline-block;background:none;border:none;cursor:pointer;padding:0;text-shadow:0 1px 0 rgba(255,255,255,.6)}.read-more:hover{color:#2e6bb0;transform:translate(4px)}.blog-cta{text-align:center;margin-top:2rem}.blog-cta .btn{padding:.9rem 2.5rem;font-size:1rem}.blog-modal{position:fixed;inset:0;background:#c8beafd9;display:flex;justify-content:center;align-items:flex-start;z-index:2000;overflow-y:auto;padding:2rem;animation:fadeInModal .25s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes fadeInModal{0%{opacity:0}to{opacity:1}}.blog-modal-content{background:linear-gradient(180deg,#fff,#f8f5f0);border-radius:18px;max-width:900px;width:100%;margin:1rem auto;position:relative;border:1px solid rgba(0,0,0,.15);box-shadow:0 20px 60px #0000004d,0 1px #fffffff2 inset;animation:slideUpModal .3s ease;overflow:hidden}@keyframes slideUpModal{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.blog-modal-close{position:absolute;top:1.2rem;right:1.2rem;background:linear-gradient(180deg,#ff6b6b,#e53333 48%,#c82020 50%,#e53333);border:1px solid #aa1515;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;font-weight:900;transition:all .15s ease;z-index:10;box-shadow:0 1px #ffffff4d inset,0 2px 6px #0000004d;text-shadow:0 -1px 0 rgba(0,0,0,.3);line-height:1;padding-bottom:1px}.blog-modal-close:hover{background:linear-gradient(180deg,#f88,#f04040 48%,#d83030 50%,#f04040);transform:scale(1.1)}.blog-modal-close:active{transform:scale(.95)}.blog-modal-header{padding:3rem 3rem 2rem;border-bottom:1px solid rgba(0,0,0,.08);text-align:center;background:linear-gradient(180deg,#f8f5f0,#fff)}.blog-modal-emoji{font-size:4.5rem;margin-bottom:1.2rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.blog-modal-header h1{font-size:2.2rem;margin-bottom:1rem;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.9);line-height:1.3}.blog-modal-meta{display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:.9rem;color:#888;margin-bottom:1.2rem;font-style:italic}.blog-modal-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.blog-modal-body{padding:3rem;overflow-y:auto}.markdown-content{color:#333;line-height:1.9;font-size:1.05rem}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:#1a1a1a;margin-top:2.5rem;margin-bottom:1rem;line-height:1.3;font-weight:700;text-shadow:0 1px 0 rgba(255,255,255,.8)}.markdown-content h1{font-size:2.2rem;border-bottom:2px solid rgba(74,139,219,.25);padding-bottom:.5rem}.markdown-content h2{font-size:1.8rem;border-bottom:1px solid rgba(0,0,0,.08);padding-bottom:.4rem}.markdown-content h3{font-size:1.4rem}.markdown-content h4{font-size:1.2rem}.markdown-content p{margin-bottom:1.5rem}.markdown-content a{color:#4a8bdb;text-decoration:none;border-bottom:1px solid rgba(74,139,219,.3);transition:all .2s ease}.markdown-content a:hover{color:#2e6bb0;border-bottom-color:#2e6bb0}.markdown-content ul,.markdown-content ol{margin-bottom:1.5rem;padding-left:2rem}.markdown-content li{margin-bottom:.5rem;color:#444}.markdown-content li::marker{color:#4a8bdb}.markdown-content code{background:linear-gradient(180deg,#f0ede8,#e8e4de);padding:.15rem .45rem;border-radius:5px;font-family:Courier New,Courier,monospace;font-size:.88em;color:#c0392b;border:1px solid rgba(0,0,0,.12);box-shadow:0 1px #fffc inset}.markdown-content pre{background:linear-gradient(180deg,#2a2520,#1e1a16);border:1px solid rgba(0,0,0,.3);border-radius:12px;padding:1.5rem;overflow-x:auto;margin-bottom:1.5rem;box-shadow:0 1px #ffffff14 inset,0 4px 12px #0003}.markdown-content pre code{background:none;padding:0;color:#e8e0d5;font-size:.9rem;line-height:1.7;border:none;box-shadow:none}.markdown-content blockquote{border-left:4px solid #4A8BDB;padding:1rem 1.5rem;margin:1.5rem 0;color:#555;background:linear-gradient(180deg,#f0f5fc,#e8f0fa);border-radius:0 10px 10px 0;box-shadow:0 2px 6px #4a8bdb1a,0 1px #fffc inset;font-style:italic}.markdown-content hr{border:none;height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.15) 30%,rgba(0,0,0,.15) 70%,transparent);margin:2rem 0}.markdown-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.markdown-content table th,.markdown-content table td{padding:.75rem 1rem;border:1px solid rgba(0,0,0,.08);text-align:left;color:#333}.markdown-content table thead{background:linear-gradient(180deg,#f0ede8,#e8e4de)}.markdown-content table th{font-weight:700;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.8)}.markdown-content table tr:nth-child(2n){background:#4a8bdb0a}.markdown-content img{max-width:100%;height:auto;border-radius:10px;margin:1.5rem 0;box-shadow:0 4px 14px #00000026;border:1px solid rgba(0,0,0,.08)}@media(max-width:768px){.blog-grid{grid-template-columns:1fr}.blog-modal{padding:0}.blog-modal-content{margin:0;border-radius:0;min-height:100vh}.blog-modal-header{padding:2rem 1.5rem}.blog-modal-header h1{font-size:1.7rem}.blog-modal-body{padding:2rem 1.5rem}.markdown-content{font-size:1rem}.markdown-content h1{font-size:1.6rem}.markdown-content h2{font-size:1.4rem}.markdown-content h3{font-size:1.2rem}.markdown-content pre{padding:1rem}}@media(max-width:640px){.blog{padding:4rem 1rem}.blog-content{padding:1.5rem}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.contact{padding:6rem 2rem}.contact-container{max-width:1100px;margin:0 auto}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:3rem}.contact-info h3{font-size:1.8rem;margin-bottom:1.2rem;color:#1a1a1a;text-shadow:0 1px 0 rgba(255,255,255,.8)}.contact-info>p{font-size:1rem;line-height:1.8;color:#555;margin-bottom:2rem;text-shadow:0 1px 0 rgba(255,255,255,.5)}.contact-methods{display:flex;flex-direction:column;gap:1rem}.contact-method{display:flex;align-items:center;gap:1.2rem;padding:1.2rem 1.5rem;background:linear-gradient(180deg,#fff,#f8f5f0);border-radius:12px;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 6px #0000001a,0 1px #ffffffe6 inset;text-decoration:none;color:inherit;transition:all .2s ease;position:relative}.contact-method:after{content:"›";position:absolute;right:1.2rem;font-size:1.5rem;color:#aaa;font-weight:300}.contact-method:hover{background:linear-gradient(180deg,#f5f8ff,#eff4fd);border-color:#4a8bdb33;transform:translate(4px);box-shadow:0 4px 10px #0000001f,0 1px #ffffffe6 inset}.contact-icon{font-size:2rem;width:52px;height:52px;display:flex;justify-content:center;align-items:center;background:linear-gradient(145deg,#3a5f8a,#2a4870);border-radius:12px;border:1px solid rgba(0,0,0,.2);box-shadow:0 1px #fff3 inset,0 2px 4px #00000040;flex-shrink:0}.contact-details{flex:1}.contact-method-title{font-size:.8rem;color:#999;margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600;text-shadow:0 1px 0 rgba(255,255,255,.7)}.contact-method-value{font-size:.95rem;color:#333;font-weight:600;text-shadow:0 1px 0 rgba(255,255,255,.7)}.contact-form-container{background:linear-gradient(180deg,#fff,#f8f5f0);padding:2.5rem;border-radius:16px;border:1px solid rgba(0,0,0,.12);box-shadow:0 6px 20px #0000001f,0 1px #fffffff2 inset}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.85rem;color:#666;font-weight:700;text-transform:uppercase;letter-spacing:.4px;text-shadow:0 1px 0 rgba(255,255,255,.8)}.form-group input,.form-group textarea{padding:.8rem 1rem;background:linear-gradient(180deg,#f0ede8,#fffefb 30% 100%);border:1px solid rgba(0,0,0,.2);border-radius:10px;color:#333;font-size:1rem;font-family:inherit;transition:all .2s ease;box-shadow:0 1px 3px #0000001a inset,0 1px #fffc;outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:#bbb;font-style:italic}.form-group input:focus,.form-group textarea:focus{border-color:#4a8bdb;background:linear-gradient(180deg,#e8f2fc,#fff 30%);box-shadow:0 1px 3px #0000001a inset,0 0 0 3px #4a8bdb33,0 1px #fffc}.form-group textarea{resize:vertical;min-height:120px}.submit-btn{width:100%;padding:1rem;font-size:1.05rem;margin-top:.5rem;border-radius:12px;background:linear-gradient(180deg,#6aabef,#4a8bdb 48%,#3272c4 50%,#4a8bdb);color:#fff;font-weight:700;text-shadow:0 -1px 1px rgba(0,0,0,.3);border:1px solid #2a60aa;box-shadow:0 1px #ffffff59 inset,0 4px 10px #00000040;letter-spacing:.5px;cursor:pointer;transition:all .15s ease}.submit-btn:hover{background:linear-gradient(180deg,#7bbbf8,#5a9be5 48%,#4282d3 50%,#5a9be5);transform:translateY(-1px);box-shadow:0 1px #ffffff59 inset,0 6px 14px #00000040}.submit-btn:active{transform:translateY(1px);background:linear-gradient(180deg,#3272c4,#4a8bdb);box-shadow:0 1px 3px #0000004d inset}@media(max-width:968px){.contact-content{grid-template-columns:1fr;gap:2rem}}@media(max-width:640px){.contact{padding:4rem 1rem}.contact-form-container{padding:1.5rem}.contact-info h3{font-size:1.5rem}}.footer{background:linear-gradient(180deg,#2e2a25,#231f1b,#1a1714);background-image:linear-gradient(180deg,#2e2a25,#1a1714),repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(0,0,0,.08) 6px,rgba(0,0,0,.08) 7px);padding:4rem 2rem 2rem;border-top:3px solid #111;box-shadow:0 -1px #ffffff12,0 -4px 12px #0006;position:relative}.footer:before{content:"";position:absolute;top:6px;left:0;right:0;height:1px;background:repeating-linear-gradient(90deg,transparent,transparent 8px,rgba(255,255,255,.12) 8px,rgba(255,255,255,.12) 14px)}.footer-container{max-width:1100px;margin:0 auto}.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}.footer-section h3,.footer-section h4{margin-bottom:1.2rem;text-shadow:0 1px 0 rgba(0,0,0,.5)}.footer-logo{font-size:1.8rem;font-weight:900;color:#d4b896;text-shadow:0 1px 0 rgba(255,255,255,.1),0 -1px 0 rgba(0,0,0,.4),0 2px 4px rgba(0,0,0,.5);letter-spacing:1px}.footer-description{font-size:.9rem;line-height:1.7;color:#ffffff73;margin-bottom:1.5rem}.social-links{display:flex;gap:.75rem}.social-link{width:44px;height:44px;display:flex;justify-content:center;align-items:center;background:linear-gradient(145deg,#4a4440,#2e2a25);border:1px solid rgba(255,255,255,.1);border-radius:11px;font-size:1.3rem;text-decoration:none;transition:all .2s ease;box-shadow:0 1px #ffffff1a inset,0 2px 6px #0006}.social-link:hover{background:linear-gradient(145deg,#5a5450,#3e3a35);border-color:#ffffff26;transform:translateY(-3px);box-shadow:0 1px #ffffff1a inset,0 6px 12px #00000080}.footer-section h4{font-size:1rem;color:#ffffff8c;text-transform:uppercase;letter-spacing:.8px;font-weight:700}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.footer-links li{font-size:.9rem;color:#fff6;text-shadow:0 1px 0 rgba(0,0,0,.4)}.footer-links a{color:#fff6;text-decoration:none;transition:color .2s ease;cursor:pointer}.footer-links a:hover{color:#d4b896}.footer-bottom{padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -1px #0000004d;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-bottom p{margin:0;font-size:.85rem;color:#ffffff4d;text-shadow:0 1px 0 rgba(0,0,0,.4)}.footer-tech{color:#fff3!important;font-style:italic}@media(max-width:968px){.footer-content{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.footer{padding:3rem 1rem 1.5rem}.footer-content{grid-template-columns:1fr;gap:2rem}.footer-bottom{flex-direction:column;text-align:center}}
