@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400&display=swap";:root{--clr-primary: #4636ff;--clr-primary-dim: #3451d1;--clr-accent: #5769ff;--clr-accent-glow: rgba(70, 54, 255, .18);--clr-bg: #f6f8ff;--clr-surface: #ffffff;--clr-surface-2: #eef1fb;--clr-border: #dde2f5;--clr-text: #0d1240;--clr-text-muted:#5a6399;--clr-nav-bg: rgba(246, 248, 255, .88);--shadow-sm: 0 1px 4px rgba(13, 18, 64, .07);--shadow-md: 0 4px 20px rgba(13, 18, 64, .1);--shadow-lg: 0 12px 40px rgba(13, 18, 64, .13);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--ease: cubic-bezier(.4, 0, .2, 1);--dur: .2s;--font-body: "Plus Jakarta Sans", system-ui, sans-serif}[data-theme=dark]{--clr-bg: #07091a;--clr-surface: #0f1230;--clr-surface-2: #161a3a;--clr-border: #1e2450;--clr-text: #e4e8ff;--clr-text-muted:#7e8bbf;--clr-nav-bg: rgba(7, 9, 26, .92);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .5);--shadow-md: 0 4px 20px rgba(0, 0, 0, .55);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .65)}:root,[data-theme=dark]{--bs-body-bg: var(--clr-bg);--bs-body-color: var(--clr-text);--bs-border-color: var(--clr-border);--bs-primary: var(--clr-primary);--bs-primary-rgb: 67, 97, 238;--bs-link-color: var(--clr-primary);--bs-link-hover-color: var(--clr-accent);--bs-border-radius: var(--radius-md)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{margin:0;background-color:var(--clr-bg);color:var(--clr-text);font-family:var(--font-body);font-weight:400;line-height:1.7;transition:background-color .3s var(--ease),color .3s var(--ease);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:var(--font-body);font-weight:700;line-height:1.2;color:var(--clr-text)}a{color:var(--clr-primary);text-decoration:none;transition:color var(--dur) var(--ease)}a:hover{color:var(--clr-accent)}img{display:block;max-width:100%}.navbar{background:var(--clr-nav-bg)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--clr-border);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);padding-top:.85rem;padding-bottom:.85rem}.navbar-brand{font-weight:800;font-size:1.2rem;letter-spacing:-.01em;color:var(--clr-text)!important}.navbar-brand span{color:var(--clr-accent)}.nav-link{font-size:.875rem;font-weight:500;color:var(--clr-text-muted)!important;padding:.4rem .85rem!important;border-radius:var(--radius-sm);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-link:hover,.nav-link.active{color:var(--clr-text)!important;background:var(--clr-surface-2)}.navbar-toggler{border:1px solid var(--clr-border);border-radius:var(--radius-sm);padding:.35rem .6rem}[data-theme=light] .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%235a6399' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-theme=dark] .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%237e8bbf' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}@media(max-width:991.98px){.navbar-collapse{background:var(--clr-surface);border-top:1px solid var(--clr-border);padding:1rem 0 .75rem;margin-top:.5rem;border-radius:0 0 var(--radius-md) var(--radius-md)}.navbar-collapse .btn{width:100%;margin-left:0!important;margin-top:.5rem}#theme-toggle-desktop{display:none!important}}@media(min-width:992px){.navbar-collapse{background:transparent}#theme-toggle-mobile{display:none!important}}.btn-primary{background:var(--clr-primary);border-color:var(--clr-primary);font-weight:600;letter-spacing:.01em;border-radius:var(--radius-sm);transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn-primary:hover{background:var(--clr-accent);border-color:var(--clr-accent);box-shadow:0 0 0 4px var(--clr-accent-glow)}.btn-outline-primary{border-color:var(--clr-primary);color:var(--clr-primary);font-weight:600;border-radius:var(--radius-sm);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn-outline-primary:hover{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}.card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--clr-primary)}.form-control,.form-select{background:var(--clr-surface);border:1px solid var(--clr-border);color:var(--clr-text);border-radius:var(--radius-sm);font-family:var(--font-body);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.form-control:focus,.form-select:focus{background:var(--clr-surface);color:var(--clr-text);border-color:var(--clr-primary);box-shadow:0 0 0 3px #4361ee26;outline:none}.form-label{font-size:.875rem;font-weight:600;color:var(--clr-text-muted);margin-bottom:.35rem}.form-control::placeholder{color:var(--clr-text-muted);opacity:.65}.section-pad{padding-top:6rem;padding-bottom:6rem}.section-eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--clr-accent);background:var(--clr-accent-glow);border:1px solid rgba(70,54,255,.22);padding:.3rem .9rem;border-radius:100px;margin-bottom:.85rem}.section-title{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;margin-bottom:1rem}.section-subtitle{font-size:1.05rem;color:var(--clr-text-muted);max-width:52ch;font-weight:400;margin-top:1rem}.gradient-text{background:linear-gradient(135deg,var(--clr-primary) 0%,var(--clr-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;padding-top:80px;padding-bottom:3rem}.hero-content{position:relative;z-index:1;width:100%}.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--clr-accent);border:1px solid var(--clr-accent-glow);background:var(--clr-accent-glow);padding:.35rem 1rem;border-radius:100px;margin-bottom:1.5rem}.hero-eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--clr-accent);display:block;flex-shrink:0}.hero-title{font-size:clamp(2.6rem,6.5vw,5.2rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.5rem;line-height:1.05}.hero-sub{font-size:1.1rem;color:var(--clr-text-muted);max-width:50ch;margin-bottom:2.5rem;line-height:1.75;font-weight:400}.hero-cta-group{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}.scroll-hint{display:flex;align-items:center;gap:.5rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--clr-text-muted);margin-top:3.5rem;position:relative;z-index:1;animation:bob 2.2s ease-in-out infinite}.scroll-hint svg{opacity:.55}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}#about{background:var(--clr-surface);border-top:1px solid var(--clr-border);border-bottom:1px solid var(--clr-border)}.about-stat{padding:1.4rem;border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface-2);text-align:center;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.about-stat:hover{border-color:var(--clr-primary);box-shadow:var(--shadow-sm)}.about-stat-number{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--clr-primary),var(--clr-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:.3rem;letter-spacing:-.02em}.about-stat-label{font-size:.78rem;font-weight:600;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.07em}.service-card{padding:1.75rem;height:100%;position:relative;overflow:hidden}.service-icon{width:46px;height:46px;border-radius:var(--radius-sm);background:var(--clr-accent-glow);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;color:var(--clr-accent);border:1px solid rgba(70,54,255,.15);flex-shrink:0}.service-card h3{font-size:1.05rem;font-weight:700;margin-bottom:.5rem}.service-card p{font-size:.9rem;color:var(--clr-text-muted);margin:0;line-height:1.65}#portfolio{background:var(--clr-surface);border-top:1px solid var(--clr-border);border-bottom:1px solid var(--clr-border)}.portfolio-empty{border:2px dashed var(--clr-border);border-radius:var(--radius-lg);padding:5rem 2rem;text-align:center;background:var(--clr-surface-2);transition:border-color var(--dur) var(--ease)}.portfolio-empty:hover{border-color:var(--clr-primary)}.portfolio-empty-icon{width:68px;height:68px;border-radius:50%;background:var(--clr-accent-glow);border:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;color:var(--clr-accent)}.project-card{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--clr-border);background:var(--clr-surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease)}.project-card:hover{box-shadow:var(--shadow-lg)}.project-card-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--clr-surface-2)}.project-card-body{padding:1.5rem}.project-tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--clr-accent);background:var(--clr-accent-glow);border:1px solid rgba(70,54,255,.2);padding:.2rem .65rem;border-radius:100px;margin-bottom:.75rem}.project-card h3{font-size:1.05rem;margin-bottom:.5rem}.project-card p{font-size:.875rem;color:var(--clr-text-muted);margin-bottom:1rem}.project-link{font-size:.85rem;font-weight:600;color:var(--clr-primary);display:inline-flex;align-items:center;gap:.35rem;transition:color var(--dur) var(--ease),gap var(--dur) var(--ease)}.project-link:hover{color:var(--clr-accent);gap:.55rem}.testimonial-card{padding:2rem;position:relative}.testimonial-card:before{content:"“";font-size:5rem;font-weight:800;line-height:1;color:var(--clr-accent);opacity:.15;position:absolute;top:.5rem;left:1.5rem;pointer-events:none;font-family:Georgia,serif}.testimonial-text{font-size:.95rem;color:var(--clr-text-muted);font-style:italic;margin-bottom:1.25rem;position:relative;z-index:1;line-height:1.7}.testimonial-author{font-size:.875rem;font-weight:700;color:var(--clr-text)}.testimonial-role{font-size:.78rem;color:var(--clr-text-muted)}.testimonials-placeholder{position:relative}.placeholder-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,var(--clr-bg) 75%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:2.5rem;border-radius:var(--radius-md);z-index:2}.placeholder-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--clr-text-muted);border:1px dashed var(--clr-border);padding:.5rem 1.1rem;border-radius:100px;background:var(--clr-surface)}.contact-info-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;border:1px solid var(--clr-border);border-radius:var(--radius-md);background:var(--clr-surface-2);transition:border-color var(--dur) var(--ease)}.contact-info-item:hover{border-color:var(--clr-primary)}.contact-info-icon{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--clr-accent-glow);display:flex;align-items:center;justify-content:center;color:var(--clr-accent)}.contact-info-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--clr-text-muted);display:block;margin-bottom:.2rem}.contact-info-value{font-size:.95rem;font-weight:500;color:var(--clr-text)}.form-status{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;display:none;margin-bottom:1rem}.form-status.success{display:block;background:#16a34a14;border:1px solid rgba(22,163,74,.25);color:#15803d}.form-status.error{display:block;background:#dc262614;border:1px solid rgba(220,38,38,.25);color:#b91c1c}footer{background:var(--clr-surface);border-top:1px solid var(--clr-border);padding:2.5rem 0}.footer-brand{font-weight:800;font-size:1.1rem;color:var(--clr-text)}.footer-brand span{color:var(--clr-accent)}.footer-copy{font-size:.8rem;color:var(--clr-text-muted)}.theme-toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--clr-border);background:var(--clr-surface-2);color:var(--clr-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);padding:0;flex-shrink:0}.theme-toggle:hover{border-color:var(--clr-primary);color:var(--clr-primary);background:var(--clr-surface);box-shadow:var(--shadow-sm)}.theme-toggle .icon-sun,.theme-toggle .icon-moon{width:16px;height:16px}[data-theme=dark] .icon-sun,[data-theme=light] .icon-moon{display:none}.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s var(--ease),transform .55s var(--ease)}.reveal.visible{opacity:1;transform:none}.reveal-group>*{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.reveal-group.visible>*:nth-child(1){opacity:1;transform:none;transition-delay:.05s}.reveal-group.visible>*:nth-child(2){opacity:1;transform:none;transition-delay:.12s}.reveal-group.visible>*:nth-child(3){opacity:1;transform:none;transition-delay:.19s}.reveal-group.visible>*:nth-child(4){opacity:1;transform:none;transition-delay:.26s}.reveal-group.visible>*:nth-child(5){opacity:1;transform:none;transition-delay:.33s}.reveal-group.visible>*:nth-child(6){opacity:1;transform:none;transition-delay:.4s}.divider{height:1px;background:linear-gradient(to right,transparent,var(--clr-border),transparent);border:none;margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal,.reveal-group>*{opacity:1;transform:none}}
