.card,.card-interactive{border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);transition:all .3s ease-in-out}.card:hover,.card-interactive:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1);transform:translateY(-2px)}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:0 20px 25px -5px rgba(0,0,0,.1);transform:translateY(-4px)}.card-interactive:active{transform:translateY(-2px)}.contact-links a,.contact-info a{color:inherit;text-decoration:none;transition:color .15s ease-in-out}.contact-links a:hover,.contact-info a:hover{color:#16a34a}.btn-primary,.btn-outline-primary{display:inline-block;padding:.5rem 1.5rem;border:none;border-radius:.5rem;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;transition:all .15s ease-in-out}.btn-primary:focus,.btn-outline-primary:focus{outline:2px solid #16a34a;outline-offset:2px}.btn-primary:disabled,.btn-outline-primary:disabled{opacity:.6;cursor:not-allowed}:root{--primary-color: #16a34a;--primary-dark: #15803d;--primary-light: #dcfce7;--secondary-color: #64748b;--accent-color: #f59e0b;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-dark: #0f172a;--border-color: #e2e8f0;--border-light: #f1f5f9;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--transition-fast: 0.15s ease-in-out;--transition-normal: 0.3s ease-in-out;--transition-slow: 0.5s ease-in-out}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{margin:0;font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;font-size:var(--font-size-base);overflow-x:hidden}.skip-link{position:absolute;left:-9999px;top:auto;z-index:1000}.skip-link:focus{left:var(--spacing-md);top:var(--spacing-md);background:var(--bg-dark);color:var(--bg-primary);padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;text-decoration:none;font-weight:600}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-6px)}100%{transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translateX(-30px)}100%{opacity:1;transform:translateX(0)}}@keyframes slideRight{0%{opacity:0;transform:translateX(30px)}100%{opacity:1;transform:translateX(0)}}@keyframes rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes typewriter{0%{width:0}100%{width:100%}}.animate-float{animation-name:float;animation-duration:3s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.animate-slide-up{animation-name:slideUp;animation-duration:.8s;animation-timing-function:ease-out;animation-fill-mode:both}.animate-slide-left{animation-name:slideLeft;animation-duration:.8s;animation-timing-function:ease-out;animation-fill-mode:both}.animate-slide-right{animation-name:slideRight;animation-duration:.8s;animation-timing-function:ease-out;animation-fill-mode:both}.animate-rotate{animation-name:rotate;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:linear}.animate-pulse{animation-name:pulse;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.animate-bounce{animation-name:bounce;animation-duration:1s;animation-iteration-count:infinite}.animate-fade-in{animation-name:fadeIn;animation-duration:1s;animation-timing-function:ease-in;animation-fill-mode:both}.animate-delay-1{animation-delay:.1s}.animate-delay-2{animation-delay:.2s}.animate-delay-3{animation-delay:.3s}.animate-delay-4{animation-delay:.4s}.animate-delay-5{animation-delay:.5s}@keyframes pageLoad{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-50px)}100%{opacity:1;transform:translateX(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(50px)}100%{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}.hero-content{animation:slideInFromLeft 1s ease-out .5s both}.hero-card{animation:slideInFromRight 1s ease-out .7s both}.card{animation:pageLoad .8s ease-out both}.card:nth-child(1){animation-delay:.1s}.card:nth-child(2){animation-delay:.2s}.card:nth-child(3){animation-delay:.3s}.card:nth-child(4){animation-delay:.4s}section{animation:pageLoad 1s ease-out both}section:nth-of-type(1){animation-delay:.2s}section:nth-of-type(2){animation-delay:.4s}section:nth-of-type(3){animation-delay:.6s}section:nth-of-type(4){animation-delay:.8s}section:nth-of-type(5){animation-delay:1s}section:nth-of-type(6){animation-delay:1.2s}section:nth-of-type(7){animation-delay:1.4s}@keyframes typewriter{0%{width:0;border-right:2px solid var(--primary-color)}50%{border-right:2px solid var(--primary-color)}100%{width:100%;border-right:none}}.typewriter-effect{overflow:hidden;white-space:nowrap;border-right:2px solid var(--primary-color);animation:typewriter 3s steps(40, end) .5s both}.btn-primary{background-color:#16a34a;border-color:#16a34a;transition:all .15s ease-in-out}.btn-primary:hover{background-color:#15803d;border-color:#15803d;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.btn-primary{background-color:#16a34a;color:#fff;border:1px solid #16a34a}.btn-primary:hover,.btn-primary:focus{background-color:#15803d;border-color:#15803d;transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.btn-primary:active{transform:translateY(0)}.btn-outline-primary{color:#16a34a;border:2px solid #16a34a;background-color:rgba(0,0,0,0)}.btn-outline-primary:hover,.btn-outline-primary:focus{background-color:#16a34a;color:#fff;transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.btn-outline-primary:active{transform:translateY(0)}.card{overflow:hidden;position:relative}.card::before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);transition:left .5s}.card:hover::before{left:100%}.navbar{background-color:hsla(0,0%,100%,.95) !important;backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.navbar-brand{font-weight:700;font-size:var(--font-size-xl);color:var(--text-primary) !important}.navbar-brand span{color:var(--primary-color)}.nav-link{color:var(--text-primary) !important;font-weight:500;transition:color var(--transition-fast)}.nav-link:hover{color:var(--primary-color) !important}.nav-toggle{display:none}.nav-toggle-label{display:none;flex-direction:column;cursor:pointer;user-select:none;padding:.5rem}.nav-toggle-label span{width:25px;height:3px;background-color:var(--text-primary);margin:3px 0;transition:all .3s ease;border-radius:2px}.nav-toggle-label:hover span{background-color:var(--primary-color)}.nav-menu{display:flex;gap:1rem}@media(max-width: 991.98px){.nav-toggle-label{display:flex;margin-left:auto}.nav-menu{position:absolute;top:100%;left:0;right:0;background:hsla(0,0%,100%,.98);backdrop-filter:blur(10px);flex-direction:column;width:100%;padding:1rem;border-top:1px solid var(--border-color);box-shadow:var(--shadow-lg);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease}.nav-menu .nav-item{margin:.5rem 0}.nav-menu .nav-link{display:block;padding:.75rem 1rem;border-radius:.5rem;transition:all .3s ease}.nav-menu .nav-link:hover{background:var(--primary-light);transform:translateX(5px)}.nav-toggle:checked~.nav-menu{transform:translateY(0);opacity:1;visibility:visible}.nav-toggle:checked~.nav-toggle-label span:nth-child(1){transform:rotate(45deg) translate(6px, 6px)}.nav-toggle:checked~.nav-toggle-label span:nth-child(2){opacity:0}.nav-toggle:checked~.nav-toggle-label span:nth-child(3){transform:rotate(-45deg) translate(6px, -6px)}}.badge{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:999px}.form-control{border:1px solid var(--border-color);border-radius:.5rem;padding:var(--spacing-md);transition:all var(--transition-fast);position:relative}.form-control:focus{border-color:var(--primary-color);box-shadow:0 0 0 .2rem rgba(22,163,74,.25);outline:none}.form-control:valid{border-color:#16a34a;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2316a34a' d='m2.3 6.73.94-.94 1.06 1.06L7.25 4.5l.94.94L4.3 9.85l-2-2z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem 1rem}.form-control:invalid:not(:placeholder-shown){border-color:#dc2626;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc2626'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath d='M5.8 5.8l.4.4m0-.8l-.4.4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem 1rem}.form-control:required:invalid:not(:placeholder-shown){border-color:#dc2626}.form-control:required:valid{border-color:#16a34a}.contact-form .form-control:invalid:not(:placeholder-shown)+.invalid-feedback{display:block}.contact-form .form-control:valid:not(:placeholder-shown)+.valid-feedback{display:block}.contact-form .invalid-feedback{display:none;color:#dc2626;font-size:.875rem;margin-top:.25rem}.contact-form .valid-feedback{display:none;color:#16a34a;font-size:.875rem;margin-top:.25rem}.hero{background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);position:relative;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="%23e2e8f0" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');opacity:.3;z-index:0}.hero-content{position:relative;z-index:1}.hero-card{background:var(--bg-dark);color:var(--bg-primary);border:none;position:relative;overflow:hidden}.hero-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);opacity:.1;z-index:0}.hero-card .card-body{position:relative;z-index:1}.contact-links a:hover{color:var(--primary-color)}section{position:relative}section.bg-light{background-color:var(--bg-secondary) !important}.skills-tags .badge{margin-bottom:var(--spacing-sm);font-weight:500;letter-spacing:.025em}.timeline .card{border-left:4px solid var(--primary-color);transition:all var(--transition-normal)}.timeline .card:hover{border-left-color:var(--primary-dark);transform:translateX(4px)}.projects .card{transition:all var(--transition-normal)}.projects .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.contact-info a:hover{color:var(--primary-color)}.social-links a{transition:all var(--transition-fast)}.social-links a:hover{transform:translateY(-2px)}.site-footer{background-color:var(--bg-dark) !important;border-top:1px solid var(--border-color)}.site-footer a{color:var(--bg-primary);transition:color var(--transition-fast)}.site-footer a:hover{color:var(--primary-light)}.back-to-top{position:fixed;bottom:20px;right:20px;width:50px;height:50px;background-color:var(--primary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:var(--shadow-lg);transition:all var(--transition-normal);z-index:1000;opacity:0;visibility:hidden;transform:translateY(20px)}.back-to-top:hover{background-color:var(--primary-dark);transform:translateY(-5px);box-shadow:var(--shadow-xl)}.back-to-top:focus{outline:2px solid var(--primary-color);outline-offset:2px}@media(min-width: 768px){.back-to-top{opacity:1;visibility:visible;transform:translateY(0);animation:fadeInUp .5s ease-out 2s both}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}@media(max-width: 991.98px){.hero-card{margin-top:var(--spacing-xl)}.contact-links{text-align:center}.contact-links a{display:inline-block;margin:var(--spacing-sm)}}@media(max-width: 767.98px){:root{--spacing-xl: 1.5rem;--spacing-2xl: 2rem}.hero{padding:var(--spacing-2xl) 0}.display-4{font-size:var(--font-size-3xl)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}.card-body{padding:var(--spacing-lg)}.skills-tags .badge{font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.navbar-brand{font-size:var(--font-size-lg)}.contact-info{margin-bottom:var(--spacing-xl)}.social-links .btn{margin-bottom:var(--spacing-sm)}}@media(max-width: 575.98px){.container{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.hero-card{margin-top:var(--spacing-lg)}.card{margin-bottom:var(--spacing-md)}.btn{width:100%;margin-bottom:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg)}.d-flex.gap-3{flex-direction:column;gap:var(--spacing-sm) !important}.hero{padding:var(--spacing-xl) 0}.display-4{font-size:var(--font-size-2xl)}.lead{font-size:var(--font-size-base)}.navbar-collapse{background:hsla(0,0%,100%,.98);border-radius:.5rem;margin-top:var(--spacing-sm);padding:var(--spacing-md);box-shadow:var(--shadow-lg)}.contact-links{flex-direction:column;align-items:center;gap:var(--spacing-sm)}.contact-links a{display:block;text-align:center;padding:var(--spacing-sm);border-radius:.5rem;background:var(--bg-secondary);transition:all var(--transition-fast)}.contact-links a:hover{background:var(--primary-light);transform:translateY(-2px)}}*{max-width:100%;box-sizing:border-box}body{overflow-x:hidden}.container,.container-fluid{overflow-x:hidden}@media(max-width: 767.98px){.hero{padding:var(--spacing-2xl) 0;min-height:70vh;display:flex;align-items:center}.skills-tags .badge{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md)}.timeline .card{margin-bottom:var(--spacing-lg)}}@media(prefers-reduced-motion: reduce){*{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}html{scroll-behavior:auto}}@media(prefers-color-scheme: dark){:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--border-color: #334155}}@media print{.navbar,.btn,.social-links{display:none !important}.hero{background:none !important}.card{border:1px solid #000 !important;box-shadow:none !important}}
