@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap);:root{--bg:#0b1220;--bg-soft:#111a2e;--surface:#16213a;--surface-elevated:#1b2a49;--text:#ebf0ff;--text-muted:#a9b7d5;--accent:#37d6a0;--accent-strong:#18b784;--stroke:#90aeff33;--shadow:0 18px 50px #01081873;--radius:16px;--font-sans:"Manrope",sans-serif;--font-mono:"JetBrains Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 10% 20%,#37d6a024,#0000 26%),radial-gradient(circle at 85% 12%,#497dff2e,#0000 28%),linear-gradient(165deg,#0b1220,#090f1c);background:radial-gradient(circle at 10% 20%,#37d6a024,#0000 26%),radial-gradient(circle at 85% 12%,#497dff2e,#0000 28%),linear-gradient(165deg,var(--bg) 0,#090f1c 100%);color:#ebf0ff;color:var(--text);font-family:Manrope,sans-serif;font-family:var(--font-sans);margin:0;overflow-x:hidden;position:relative}body:after,body:before{content:"";inset:0;pointer-events:none;position:fixed;z-index:-1}body:before{animation:gradient-drift 18s ease-in-out infinite;background:radial-gradient(circle at 20% 70%,#18b78429,#0000 34%),radial-gradient(circle at 76% 26%,#577aff29,#0000 32%)}body:after{animation:grid-drift 22s linear infinite;background-image:linear-gradient(#a9b7d50a 1px,#0000 0),linear-gradient(90deg,#a9b7d50a 1px,#0000 0);background-size:26px 26px;-webkit-mask-image:radial-gradient(circle at center,#000,#0000 74%);mask-image:radial-gradient(circle at center,#000,#0000 74%);opacity:.45}code{font-family:JetBrains Mono,monospace;font-family:var(--font-mono)}a{color:#37d6a0;color:var(--accent);text-decoration:none}h1,h2,h3,h4,h5,h6{font-weight:800}::selection{background:#37d6a040}@keyframes fade-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes header-drop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes float-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 #18b78400}50%{box-shadow:0 0 0 9px #18b78421}}@keyframes gradient-drift{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(0,-14px,0) scale(1.03)}}@keyframes grid-drift{0%{transform:translateZ(0)}to{transform:translate3d(26px,26px,0)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.app-header{align-items:center;animation:header-drop .7s ease both;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a101ed9;border-bottom:1px solid var(--stroke);display:flex;justify-content:space-between;left:0;padding:.9rem 5%;position:fixed;top:0;width:100%;z-index:1000}.logo{color:var(--text);font-family:var(--font-mono);font-size:1.15rem;letter-spacing:.04em}.nav-links{align-items:center;display:flex}.app-header nav a{color:var(--text-muted);font-size:.95rem;font-weight:700;margin:0 .75rem;position:relative;transition:color .25s ease,transform .25s ease}.app-header nav a:after{background:linear-gradient(90deg,#0000 0,var(--accent) 50%,#0000 100%);border-radius:999px;bottom:-5px;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:center;transition:transform .25s ease;width:100%}.app-header nav a:hover{color:var(--text);transform:translateY(-1px)}.app-header nav a:hover:after{transform:scaleX(1)}.menu-toggle{background:#0000;border:1px solid var(--stroke);border-radius:10px;cursor:pointer;display:none;height:42px;width:42px}.hamburger{background-color:var(--text);display:block;height:2px;margin:0 auto;position:relative;width:20px}.hamburger:after,.hamburger:before{background-color:var(--text);content:"";height:2px;left:0;position:absolute;transition:transform .3s ease;width:100%}.hamburger:before{top:-6px}.hamburger:after{bottom:-6px}@media (max-width:900px){.menu-toggle{display:block}.nav-links{align-items:center;animation:fade-in .3s ease;background:#0a101ef7;border-bottom:1px solid var(--stroke);display:none;flex-direction:column;left:0;padding:.9rem 0;position:absolute;top:100%;width:100%}.nav-links.open{display:flex}.app-header nav a{margin:.6rem 0}}.hero-section{align-items:center;display:flex;gap:2.5rem;justify-content:center;min-height:100vh;padding:2rem 5% 3rem;text-align:left}.hero-content{max-width:680px}.hero-content .cta-button,.hero-content h1,.hero-content h2,.hero-content p{animation:fade-up .75s ease forwards;opacity:0}.hero-content h1{-webkit-text-fill-color:#0000;animation-delay:.15s;animation-duration:.75s,8s;animation-fill-mode:forwards,none;animation-iteration-count:1,infinite;animation-name:fade-up,text-sheen;animation-timing-function:ease,linear;background:linear-gradient(95deg,#fff,#e9fbff 25%,#9bead2 54%,#fff 78%);-webkit-background-clip:text;background-size:220% auto;font-size:clamp(2.5rem,6vw,4.2rem);line-height:1.04;margin:0 0 .5rem}.hero-content h2{animation-delay:.3s;color:var(--accent);font-family:var(--font-mono);font-size:clamp(1.1rem,2.8vw,1.7rem);letter-spacing:.02em;margin:0 0 1.3rem}.hero-content p{animation-delay:.45s;color:var(--text-muted);font-size:1.03rem;line-height:1.75;margin:0 0 2rem}.cta-button{align-items:center;animation-delay:.6s;background:linear-gradient(135deg,var(--accent) 0,var(--accent-strong) 100%);border-radius:999px;box-shadow:0 12px 25px #18b7844d;color:#032015;display:inline-flex;font-weight:800;justify-content:center;letter-spacing:.02em;padding:.85rem 1.8rem;transition:transform .25s ease,box-shadow .25s ease}.cta-button:hover{box-shadow:0 14px 28px #18b7845c;transform:translateY(-2px)}.hero-image{animation:fade-up .75s ease .35s forwards;opacity:0}.hero-image .photo-placeholder{animation:float-soft 5s ease-in-out 1.2s infinite;background:linear-gradient(170deg,#1f3156,#16233f);border:1px solid var(--stroke);border-radius:24px;box-shadow:var(--shadow);height:320px;overflow:hidden;width:320px}.profile-photo{height:100%;object-fit:cover;transition:transform .35s ease;width:100%}.hero-image .photo-placeholder:hover .profile-photo{transform:scale(1.04)}@keyframes text-sheen{0%{background-position:0}to{background-position:220%}}@media (max-width:900px){.hero-section{flex-direction:column-reverse;padding-top:6.5rem;text-align:center}.hero-content{max-width:100%}.hero-image .photo-placeholder{height:min(84vw,330px);width:min(84vw,330px)}}.projects-section{padding:5.5rem 5%;text-align:center}.projects-section h2{animation:fade-up .75s ease .1s forwards;font-size:clamp(2rem,5vw,2.8rem);margin-bottom:.75rem;opacity:0}.projects-subtitle{animation:fade-up .75s ease .25s forwards;color:var(--text-muted);line-height:1.65;margin:0 auto 2.8rem;max-width:680px;opacity:0}.projects-grid{grid-gap:1.6rem;display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.project-card{animation:fade-up .75s ease forwards;background:linear-gradient(160deg,var(--surface) 0,var(--surface-elevated) 100%);border:1px solid var(--stroke);border-radius:var(--radius);opacity:0;overflow:hidden;position:relative;text-align:left;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.project-card:before{background:linear-gradient(110deg,#0000,#fff3 46%,#0000);content:"";height:260%;left:-40%;pointer-events:none;position:absolute;top:-120%;transform:rotate(20deg);transition:transform .7s ease;width:70%;z-index:2}.project-card:first-child{animation-delay:.12s}.project-card:nth-child(2){animation-delay:.2s}.project-card:nth-child(3){animation-delay:.28s}.project-card:nth-child(4){animation-delay:.36s}.project-card:nth-child(5){animation-delay:.44s}.project-card:nth-child(6){animation-delay:.52s}.project-card:nth-child(7){animation-delay:.6s}.project-card:nth-child(8){animation-delay:.68s}.project-card:nth-child(9){animation-delay:.76s}.project-card:nth-child(10){animation-delay:.84s}.project-card:nth-child(11){animation-delay:.92s}.project-card:nth-child(12){animation-delay:1s}.project-card:hover{border-color:#37d6a080;box-shadow:0 18px 32px #070f2259;transform:translateY(-7px)}.project-card:hover:before{transform:translateX(260%) rotate(20deg)}.project-image{aspect-ratio:16/9;background:#101b33;overflow:hidden;width:100%}.project-image img{display:block;height:100%;object-fit:cover;transition:transform .4s ease;width:100%}.project-card:hover .project-image img{transform:scale(1.05)}.project-image-fallback{align-items:center;background:linear-gradient(135deg,#1d335f,#24457e);color:var(--text);display:flex;font-family:var(--font-mono);font-size:.95rem;height:100%;justify-content:center;padding:1rem;text-transform:lowercase;width:100%}.project-info{padding:1.25rem;position:relative;z-index:3}.project-title-row{align-items:center;display:flex;gap:.6rem;justify-content:space-between}.project-info h3{font-size:1.18rem;margin:0}.project-index{color:var(--text-muted);font-family:var(--font-mono);font-size:.78rem}.project-info p{color:var(--text-muted);line-height:1.55;margin:.75rem 0 1rem}.project-tags{margin-top:.85rem}.tag{background-color:#18b78429;border:1px solid #18b78459;border-radius:999px;color:var(--accent);display:inline-block;font-family:var(--font-mono);font-size:.74rem;margin-bottom:.45rem;margin-right:.45rem;padding:.32rem .62rem}.project-links{display:flex;flex-wrap:wrap;gap:.7rem;padding:0 1.25rem 1.25rem;position:relative;z-index:3}.project-links a{background-color:#101b33b3;border:1px solid var(--stroke);border-radius:10px;color:var(--text);flex:1 1;font-size:.88rem;font-weight:700;min-width:120px;padding:.56rem .8rem;text-align:center;transition:border-color .25s ease,color .25s ease,background-color .25s ease,transform .25s ease}.project-links a:hover{background-color:#18b7841f;border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}@media (max-width:600px){.projects-section{padding:4.2rem 5%}.project-links a{min-width:100%}}.contact-section{background:linear-gradient(180deg,#0a101e00,#0a101eb3 20%,#0a101ef2);padding:5.2rem 5%;text-align:center}.contact-form,.contact-section h2,.contact-section p,.social-links{animation:fade-up .75s ease forwards;opacity:0}.contact-section h2{animation-delay:.1s;font-size:clamp(2rem,4.8vw,2.7rem);margin-bottom:.8rem}.contact-section p{animation-delay:.25s;color:var(--text-muted);line-height:1.65;margin:0 auto 2.2rem;max-width:620px}.contact-form{animation-delay:.4s;display:flex;flex-direction:column;gap:1rem;margin:0 auto;max-width:760px}.contact-form input,.contact-form textarea{background:#16213ae6;border:1px solid var(--stroke);border-radius:12px;color:var(--text);font-family:var(--font-sans);font-size:.98rem;padding:.95rem 1rem;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;width:100%}.contact-form input:hover,.contact-form textarea:hover{transform:translateY(-1px)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #37d6a029;outline:none}.submit-button{animation:pulse-glow 2.8s ease-in-out infinite;background:linear-gradient(135deg,var(--accent) 0,var(--accent-strong) 100%);border:none;border-radius:12px;color:#032015;cursor:pointer;font-size:1rem;font-weight:800;padding:.85rem;transition:transform .25s ease,box-shadow .25s ease}.submit-button:hover{box-shadow:0 10px 20px #18b78442;transform:translateY(-2px)}.submit-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.8;transform:none}.form-status{font-size:.95rem;font-weight:600;margin:.25rem 0 0;text-align:left}.form-status.success{color:#6effc9}.form-status.error{color:#ff9f9f}.social-links{animation-delay:.55s;margin-top:2rem}.social-links a{color:var(--text-muted);font-size:1rem;font-weight:700;margin:0 .8rem;transition:color .25s ease}.social-links a:hover{color:var(--text)}@media (max-width:768px){.contact-section{padding:4rem 5%}}.App{text-align:center}main{padding-top:82px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--surface-elevated);border:2px solid var(--bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#253760}
/*# sourceMappingURL=main.3d28a8ff.css.map*/