/* Dark theme variables */
:root {
--primary-dark: #060d28;
--secondary-dark: #0C1836;
--accent-purple: #BF89E6;
--accent-teal: #3AA89E;
--accent-gold: #FDBD5B;
--text-light: #F6EEDF;
--text-muted: #a0a0b8;
--card-bg: #0C1836;
--hover-bg: #162449;
--border-color: #2a2a4a;
}
/* Base styles */
body, button, input, textarea, select {
font-family: 'Inter', sans-serif !important;
background: linear-gradient(135deg, #f0f2f5 0%, #e6e9f0 100%);
color: #1e293b;
line-height: 1.6;
}
/* Apply Mokoto font only to headings */
h1, h2, h3, .display-3, .display-4, .display-5 {
font-family: 'Mokoto', 'Inter', sans-serif !important;
}
/* Regular text should use standard font */
p, span, div, a, li, input, label, button {
font-family: 'Inter', sans-serif !important;
}
/* Hero section */
.hero-section {
padding: 120px 0;
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--secondary-dark) 100%);
position: relative;
overflow: hidden;
}
.hero-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background: radial-gradient(circle at 50% 50%, rgba(191, 137, 230, 0.1) 0%, transparent 50%); */
pointer-events: none;
}
/* Section backgrounds with consistent gradients */
.hero-header {
padding-top: 100px;
padding-bottom: 100px;
position: relative;
background: linear-gradient(135deg, #040816 0%, #0C1836 100%);
overflow: hidden;
}
.hero-header::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background:
radial-gradient(circle at 20% 30%, rgba(191, 137, 230, 0.08) 0%, transparent 70%),
radial-gradient(circle at 80% 70%, rgba(58, 168, 158, 0.08) 0%, transparent 70%); */
pointer-events: none;
}
/* About section enhanced background */
#about.container-fluid {
background: linear-gradient(135deg, #050a1c 0%, #0C1836 100%);
position: relative;
overflow: hidden;
}
#about.container-fluid::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background:
radial-gradient(circle at 30% 40%, rgba(191, 137, 230, 0.06) 0%, transparent 60%),
radial-gradient(circle at 70% 60%, rgba(253, 189, 91, 0.06) 0%, transparent 60%); */
pointer-events: none;
}
/* FAQ section enhanced background */
.container-fluid.FAQ {
background: linear-gradient(135deg, #040816 0%, #0C1836 100%) !important;
position: relative;
overflow: hidden;
}
.container-fluid.FAQ::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background:
radial-gradient(circle at 10% 20%, rgba(191, 137, 230, 0.07) 0%, transparent 50%),
radial-gradient(circle at 90% 80%, rgba(58, 168, 158, 0.07) 0%, transparent 50%),
radial-gradient(circle at 50% 50%, rgba(253, 189, 91, 0.05) 0%, transparent 70%); */
pointer-events: none;
}
/* Testimonial section enhanced background */
.container-fluid.testimonial {
background: linear-gradient(135deg, #040816 0%, #0C1836 100%) !important;
position: relative;
overflow: hidden;
}
.container-fluid.testimonial::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background:
radial-gradient(circle at 20% 30%, rgba(191, 137, 230, 0.08) 0%, transparent 60%),
radial-gradient(circle at 80% 70%, rgba(58, 168, 158, 0.08) 0%, transparent 60%),
radial-gradient(circle at 50% 50%, rgba(253, 189, 91, 0.05) 0%, transparent 80%); */
pointer-events: none;
}
/* Pricing section enhanced background */
.container-fluid.price {
background: linear-gradient(135deg, #040816 0%, #0C1836 100%) !important;
position: relative;
overflow: hidden;
}
.container-fluid.price::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background:
radial-gradient(circle at 30% 40%, rgba(191, 137, 230, 0.07) 0%, transparent 50%),
radial-gradient(circle at 70% 60%, rgba(58, 168, 158, 0.07) 0%, transparent 50%); */
pointer-events: none;
}
/* Contact section enhanced background */
.container-fluid.contact {
background: linear-gradient(135deg, #040816 0%, #0C1836 100%) !important;
position: relative;
overflow: hidden;
}
.container-fluid.contact::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* background:
radial-gradient(circle at 20% 20%, rgba(191, 137, 230, 0.08) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(58, 168, 158, 0.08) 0%, transparent 50%),
radial-gradient(circle at 50% 50%, rgba(253, 189, 91, 0.05) 0%, transparent 70%); */
pointer-events: none;
}
/* Add blobs to container */
.container-fluid {
position: relative;
overflow: hidden;
}
/* Code preview */
.code-preview {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 12px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}
.code-dots span {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 50%;
margin-right: 6px;
}
.code-dots span:nth-child(1) {
background: #ff5f56;
}
.code-dots span:nth-child(2) {
background: #ffbd2e;
}
.code-dots span:nth-child(3) {
background: #27c93f;
}
/* Compact code block styling - reduce line height */
.code-with-line-numbers code {
line-height: 1.2;
font-size: 0.95em;
}
.code-with-line-numbers code>span {
/* padding: 1px 0; */
}
/* Feature cards */
.feature-card {
background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
border-radius: 12px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
transition: all 0.3s;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
/* Tech stack grid */
.tech-icons-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
gap: 2rem;
padding: 2rem;
}
.tech-icon {
font-size: 2.5rem;
color: var(--accent-purple);
opacity: 0.8;
transition: all 0.3s ease;
animation: float 6s ease-in-out infinite;
}
.tech-icon:hover {
opacity: 1;
transform: scale(1.1);
color: var(--text-light);
}
/* Animations */
@keyframes float {
0% {
transform: translateY(0px);
}
50% {
transform: translateY(-20px);
}
100% {
transform: translateY(0px);
}
}
.animate-on-scroll {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.animate-on-scroll.visible {
opacity: 1;
transform: translateY(0);
}
/* Buttons */
.btn-primary {
background: linear-gradient(90deg, #7c3aed 0%, #8b5cf6 100%);
border: none;
padding: 12px 24px;
border-radius: 8px;
transition: all 0.3s ease;
box-shadow: 0 4px 12px rgba(124, 58, 237, 0.25);
}
.btn-primary:hover {
background: linear-gradient(90deg, #6d28d9 0%, #7c3aed 100%);
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(124, 58, 237, 0.3);
}
/* Purple gradient button style */
.btn-purple-gradient {
background: linear-gradient(135deg, #8B5CF6 0%, #6D28D9 100%) !important;
color: white !important;
border: none !important;
box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3);
transition: all 0.3s ease;
}
.btn-purple-gradient:hover {
background: linear-gradient(135deg, #9361FF 0%, #7B3FD5 100%) !important;
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(139, 92, 246, 0.4);
}
/* CTA section */
.cta-section {
background: linear-gradient(135deg, var(--secondary-dark) 0%, var(--primary-dark) 100%);
}
.cta-card {
background: var(--card-bg);
border: 1px solid var(--border-color);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}
/* Navbar styles */
.navbar {
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
transition: all 0.3s ease-in-out;
background-color: var(--primary-dark);
}
.navbar.sticky-top {
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
background-color: var(--primary-dark);
}
.navbar-brand img {
height: 40px;
}
.nav-link {
color: var(--text-light);
font-weight: 500;
transition: color 0.3s ease;
}
.nav-link:hover {
color: var(--accent-purple);
}
/* Navbar for desktop - Fixed alignment */
@media (min-width: 992px) {
.navbar-collapse.flex-column {
flex-direction: row !important;
justify-content: flex-end;
align-items: center;
}
.navbar-nav.ms-auto {
flex-direction: row !important;
width: auto !important;
margin-right: 2rem;
}
.navbar-nav .nav-item {
display: inline-block;
}
.navbar-nav .nav-link {
padding-right: 1rem !important;
padding-left: 1rem !important;
}
.navbar .d-lg-flex {
margin-top: 0 !important;
}
}
/* Mobile navbar styles - Only apply below 992px */
@media (max-width: 992px) {
/* Better responsive styles for navbar */
.navbar-collapse {
position: fixed;
top: 0;
right: 0;
width: 100%;
height: 100vh;
padding: 2rem;
background-color: var(--primary-dark);
z-index: 999;
transition: all 0.3s;
transform: translateY(-100%);
opacity: 0;
}
.navbar-collapse.show {
transform: translateY(0);
opacity: 1;
}
/* Center the nav items vertically in the fullscreen menu */
.navbar-collapse .navbar-nav {
margin-top: -80px;
}
/* Transition for hiding elements */
.navbar-brand, .navbar-toggler {
transition: opacity 0.2s ease;
}
/* Ensure dropdown menu works properly on mobile */
.navbar-nav .dropdown-menu {
border: none;
background: rgba(15, 15, 30, 0.7) !important;
margin: 10px auto;
text-align: center;
max-width: 200px;
box-shadow: none !important;
}
/* Fix navbar toggler position to fit snugly */
.navbar-toggler {
padding: 4px 8px;
margin: 0;
margin-left: 10px;
border-radius: 6px;
align-self: center;
border: 1px solid rgba(255, 255, 255, 0.15);
position: relative;
z-index: 1060;
}
.navbar-toggler .fa-bars {
font-size: 1.2rem;
}
/* Improved navbar brand on mobile */
.navbar-brand {
padding: 0;
margin-right: 0;
z-index: 1060;
position: relative;
}
/* Make the navbar more compact on mobile */
.navbar {
min-height: 60px;
padding: 5px 12px !important;
display: flex;
align-items: center;
justify-content: space-between;
background: rgba(10, 10, 15, 0.95) !important;
}
/* Make navbar links take full width on mobile */
.navbar-nav .nav-item,
.navbar-nav .nav-link {
width: 100%;
margin: 8px 0;
display: block;
font-size: 1.2rem;
}
/* Make dropdown items match the style */
.navbar-nav .dropdown-item {
padding: 8px;
font-size: 1.1rem;
}
}
/* Forms */
input, textarea, select {
background: var(--secondary-dark);
border: 1px solid var(--border-color);
color: var(--text-light);
border-radius: 8px;
padding: 12px;
}
input:focus, textarea:focus, select:focus {
background: var(--hover-bg);
border-color: var(--accent-purple);
box-shadow: 0 0 0 2px rgba(138, 43, 226, 0.2);
}
/* Footer */
.footer {
background: var(--secondary-dark);
border-top: 1px solid var(--border-color);
padding: 60px 0;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.hero-section {
padding: 80px 0;
}
.tech-icons-grid {
grid-template-columns: repeat(auto-fit, minmax(60px, 1fr));
gap: 1rem;
}
.tech-icon {
font-size: 2rem;
}
}
/* Dark mode specific overrides */
.dark-mode {
background: var(--primary-dark);
color: var(--text-light);
}
.dark-mode .card,
.dark-mode .modal-content {
background: var(--card-bg);
border: 1px solid var(--border-color);
}
.dark-mode .text-muted {
color: var(--text-muted) !important;
}
/* Stagger animation delays for tech icons */
.tech-icon:nth-child(2n) {
animation-delay: 1s;
}
.tech-icon:nth-child(3n) {
animation-delay: 2s;
}
.tech-icon:nth-child(4n) {
animation-delay: 3s;
}
/* Gemstone Rank Colors */
.rank-amethyst {
color: #9966cc;
/* Amethyst Purple */
font-weight: bold;
}
.rank-garnet {
color: #9b111e;
/* Deep Red Garnet */
font-weight: bold;
}
.rank-topaz {
color: #ffc87c;
/* Golden Topaz */
font-weight: bold;
}
.rank-sapphire {
color: #0f52ba;
/* Rich Sapphire Blue */
font-weight: bold;
}
.rank-ruby {
color: #e0115f;
/* Vivid Ruby Red */
font-weight: bold;
}
.rank-diamond {
color: #b9f2ff;
/* Light Diamond Blue */
font-weight: bold;
}
/*** Spinner Start ***/
/*** Spinner ***/
#spinner {
opacity: 0;
visibility: hidden;
transition: opacity .5s ease-out, visibility 0s linear .5s;
z-index: 99999;
}
#spinner.show {
transition: opacity .5s ease-out, visibility 0s linear 0s;
visibility: visible;
opacity: 1;
}
/*** Spinner End ***/
.back-to-top {
position: fixed;
right: 30px;
bottom: 30px;
display: flex;
width: 45px;
height: 45px;
align-items: center;
justify-content: center;
transition: 0.5s;
z-index: 99;
}
/*** Button Start ***/
.btn {
font-weight: 600;
transition: .5s;
}
.btn-square {
width: 32px;
height: 32px;
}
.btn-sm-square {
width: 34px;
height: 34px;
}
.btn-md-square {
width: 44px;
height: 44px;
}
.btn-lg-square {
width: 56px;
height: 56px;
}
.btn-square,
.btn-sm-square,
.btn-md-square,
.btn-lg-square {
padding: 0;
display: flex;
align-items: center;
justify-content: center;
font-weight: normal;
border-radius: 50%;
}
.btn.btn-primary {
background: var(--bs-primary) !important;
color: var(--bs-white) !important;
font-weight: 400;
transition: 0.5s;
}
.btn.btn-primary:hover {
background: var(--bs-white) !important;
color: var(--bs-primary) !important;
}
.btn.btn-light {
background: var(--bs-light) !important;
color: var(--bs-primary) !important;
font-weight: 400;
transition: 0.5s;
}
.btn.btn-light:hover {
background: var(--bs-primary) !important;
color: var(--bs-light) !important;
}
.RotateMoveLeft {
position: relative;
animation: RotateMoveLeft 10s linear infinite;
}
.RotateMoveRight {
position: relative;
animation: RotateMoveLeft 10s linear infinite;
}
@keyframes RotateMoveLeft {
0% {
left: 0px;
}
50% {
left: 40px;
}
100% {
left: 0px;
}
}
@keyframes RotateMoveRight {
0% {
right: 0px;
}
50% {
right: 40px;
}
100% {
right: 0px;
}
}
/*** Navbar ***/
.navbar-light .navbar-nav .nav-link {
margin-right: 25px;
padding: 35px 0;
color: var(--bs-dark) !important;
font-size: 16px;
font-weight: 400;
outline: none;
transition: .5s;
}
.sticky-top.navbar-light .navbar-nav .nav-link {
padding: 20px 0;
color: var(--dark) !important;
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active {
color: var(--bs-primary) !important;
}
.navbar-light .navbar-brand img {
max-height: 50px;
transition: .5s;
}
.sticky-top.navbar-light .navbar-brand img {
max-height: 45px;
}
.navbar .dropdown-toggle::after {
border: none;
content: "\f107";
font-family: "Font Awesome 5 Free";
font-weight: 600;
vertical-align: middle;
margin-left: 8px;
}
@media (min-width: 1200px) {
.navbar .nav-item .dropdown-menu {
display: block;
visibility: hidden;
top: 100%;
transform: rotateX(-75deg);
transform-origin: 0% 0%;
border: 0;
border-radius: 10px;
transition: .5s;
opacity: 0;
}
}
.dropdown .dropdown-menu a:hover {
background: var(--bs-primary);
color: var(--bs-white);
}
.navbar .nav-item:hover .dropdown-menu {
transform: rotateX(0deg);
visibility: visible;
/* background: var(--bs-light) !important; */
transition: .5s;
opacity: 1;
}
.collapse.navbar-collapse {
transition: 0.5s;
}
@media (max-width: 992px) {
nav.bg-transparent {
background-color: var(--primary-dark) !important;
}
.navbar.navbar-expand-lg button span {
color: var(--text-light);
}
.navbar {
background-color: var(--primary-dark) !important;
padding-top: 10px;
padding-bottom: 10px;
}
.sticky-top.navbar-light {
background-color: var(--primary-dark) !important;
padding-top: 10px;
}
.navbar-light .navbar-collapse {
margin-top: 15px;
border-top: 1px solid #DDDDDD;
}
.navbar-light .navbar-nav .nav-link,
.sticky-top.navbar-light .navbar-nav .nav-link {
padding: 10px 0;
margin-left: 0;
color: var(--bs-dark) !important;
}
.navbar-light .navbar-brand img {
max-height: 45;
}
.hero-header {
margin-top: -100px !important;
}
}
/* Class to hide images on mobile devices */
.hide-on-mobile {
display: block;
}
@media (max-width: 767px) {
.hide-on-mobile {
display: none !important;
}
}
@media (min-width: 992px) {
.navbar-light {
position: absolute;
z-index: 999;
width: 100%;
top: 0;
left: 0;
background-color: var(--primary-dark) !important;
}
.sticky-top.navbar-light {
position: fixed;
background-color: var(--primary-dark) !important;
}
}
/*** Navbar End ***/
/*** Single Page Hero Header Start ***/
.bg-breadcrumb {
position: relative;
overflow: hidden;
background: linear-gradient(rgba(102, 16, 242, 0.05), rgba(102, 16, 242, 0.05));
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
padding: 150px 0 60px 0;
margin-bottom: 6rem;
transition: 0.5s;
}
.bg-breadcrumb::after {
content: "";
position: absolute;
bottom: -20%;
left: -10%;
width: 600px;
height: 600px;
border-radius: 300px;
border: 80px solid rgba(247, 71, 128, 0.05);
background: transparent;
animation: RotateMoveSingle 5s linear infinite;
z-index: -1;
}
.bg-breadcrumb .breadcrumb {
position: relative;
z-index: 2;
}
@keyframes RotateMoveSingle {
0% {
-webkit-transform: rotateZ(0deg) rotate(0deg) translate3d(0, 1%, 0) rotateZ(0deg);
transform: rotateZ(0deg) rotate(0deg) translate3d(0, 1%, 0) rotateZ(0deg);
}
100% {
-webkit-transform: rotateZ(360deg) rotate(360deg) translate3d(0, 1%, 0) rotateZ(-360deg);
transform: rotateZ(360deg) rotate(360deg) translate3d(0, 1%, 0) rotateZ(-360deg);
}
0% {
bottom: 0px;
}
50% {
left: -10px;
}
75% {
bottom: 10%;
}
100% {
bottom: 0px;
}
}
.bg-breadcrumb::before {
content: "";
position: absolute;
top: -15%;
right: -10%;
width: 600px;
height: 600px;
border-radius: 300px;
border: 80px solid rgba(247, 71, 128, 0.04);
background: transparent;
animation: RotateMoveSingle 5s linear infinite;
z-index: -1;
}
@keyframes RotateMoveSingle {
0% {
-webkit-transform: rotateZ(0deg) rotate(0deg) translate3d(0, 1%, 0) rotateZ(0deg);
transform: rotateZ(0deg) rotate(0deg) translate3d(0, 1%, 0) rotateZ(0deg);
}
100% {
-webkit-transform: rotateZ(360deg) rotate(360deg) translate3d(0, 1%, 0) rotateZ(-360deg);
transform: rotateZ(360deg) rotate(360deg) translate3d(0, 1%, 0) rotateZ(-360deg);
}
0% {
top: 0px;
}
50% {
top: 10%;
}
100% {
top: 0px;
}
}
@media (max-width: 992px) {
.bg-breadcrumb {
padding-top: 100px !important;
}
}
.bg-breadcrumb .breadcrumb-item a {
color: var(--bs-dark) !important;
}
.breadcrumb-animation {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
.breadcrumb-animation li {
position: absolute;
display: block;
list-style: none;
width: 20px;
height: 20px;
background: rgba(102, 16, 242, 0.07);
animation: animate 25s linear infinite;
bottom: -150px;
}
.breadcrumb-animation li:nth-child(1) {
left: 25%;
width: 80px;
height: 80px;
animation-delay: 0s;
}
.breadcrumb-animation li:nth-child(2) {
left: 10%;
width: 20px;
height: 20px;
animation-delay: 2s;
animation-duration: 12s;
}
.breadcrumb-animation li:nth-child(3) {
left: 70%;
width: 20px;
height: 20px;
animation-delay: 4s;
}
.breadcrumb-animation li:nth-child(4) {
left: 40%;
width: 60px;
height: 60px;
animation-delay: 0s;
animation-duration: 18s;
}
.breadcrumb-animation li:nth-child(5) {
left: 65%;
width: 20px;
height: 20px;
animation-delay: 0s;
}
.breadcrumb-animation li:nth-child(6) {
left: 75%;
width: 110px;
height: 110px;
animation-delay: 3s;
}
.breadcrumb-animation li:nth-child(7) {
left: 35%;
width: 150px;
height: 150px;
animation-delay: 7s;
}
.breadcrumb-animation li:nth-child(8) {
left: 50%;
width: 25px;
height: 25px;
animation-delay: 15s;
animation-duration: 45s;
}
.breadcrumb-animation li:nth-child(9) {
left: 20%;
width: 15px;
height: 15px;
animation-delay: 2s;
animation-duration: 35s;
}
.breadcrumb-animation li:nth-child(10) {
left: 85%;
width: 150px;
height: 150px;
animation-delay: 0s;
animation-duration: 11s;
}
@keyframes animate {
0% {
transform: translateY(0) rotate(0deg);
opacity: 1;
border-radius: 0;
}
100% {
transform: translateY(-1000px) rotate(720deg);
opacity: 0;
border-radius: 50%;
}
}
/*** Single Page Hero Header End ***/
/*** Hearo Header Start ***/
.header::after {
position: absolute;
content: "";
top: 0;
right: 0;
width: 60%;
height: 100%;
background: var(--bs-light);
border-radius: 22% 78% 33% 67% / 32% 0% 100% 68%;
animation: bgMove 5s linear infinite;
z-index: -1;
}
@keyframes bgMove {
0% {
right: 0px;
}
50% {
right: 20px;
}
100% {
right: 0px;
}
}
.header::before {
content: "";
position: absolute;
bottom: -9%;
left: -7%;
width: 400px;
height: 400px;
border-radius: 200px;
border: 30px solid rgba(247, 71, 128, 0.05);
background: transparent;
animation: RotateMoveHeader 5s linear infinite;
z-index: -1;
}
@keyframes RotateMoveHeader {
0% {
-webkit-transform: rotateZ(0deg) rotate(0deg) translate3d(0, 1%, 0) rotateZ(0deg);
transform: rotateZ(0deg) rotate(0deg) translate3d(0, 1%, 0) rotateZ(0deg);
}
100% {
-webkit-transform: rotateZ(360deg) rotate(360deg) translate3d(0, 1%, 0) rotateZ(-360deg);
transform: rotateZ(360deg) rotate(360deg) translate3d(0, 1%, 0) rotateZ(-360deg);
}
0% {
bottom: 0px;
}
50% {
left: -10px;
}
75% {
bottom: 9%;
}
100% {
bottom: 0px;
}
}
.hero-header {
padding-top: 100px;
padding-bottom: 100px;
position: relative;
background: linear-gradient(135deg, #0a0a0f 0%, #1a1a2e 100%);
}
/* 
.hero-header::after {
content: "";
position: absolute;
left: 100px;
bottom: 100px;
width: 58px;
height: 50px;
background: url(/assets/sty-1.png) center center no-repeat;
animation: RotateMoveSty-3 45s linear infinite;
transition: 0.5s;
z-index: -1;
} */
@keyframes RotateMoveSty-3 {
0% {
left: 100px;
}
40% {
bottom: -0px;
}
50% {
left: 700px;
}
70% {
bottom: 500px;
}
80% {
left: 400px;
}
95% {
bottom: -0px;
}
100% {
left: 100px;
}
}
.hero-header::before {
content: "";
position: absolute;
left: 100px;
bottom: 100px;
width: 300px;
height: 300px;
border-radius: 150px;
border: 30px solid rgba(102, 16, 242, 0.05);
background: transparent;
animation: RotateMoveSty-4 45s linear infinite;
transition: 0.5s;
z-index: -1;
}
@keyframes RotateMoveSty-4 {
0% {
left: 100px;
}
40% {
bottom: -0px;
}
50% {
left: 700px;
}
70% {
bottom: 500px;
}
80% {
left: 400px;
}
95% {
bottom: -0px;
}
100% {
left: 100px;
}
}
.hero-header .rotate-img {
position: absolute;
top: 70px;
left: 20px;
}
.hero-header .rotate-img .rotate-sty-2 {
position: absolute;
top: 100px;
left: 50px;
width: 50px;
height: 50px;
border-radius: 30px;
border: 5px solid rgba(247, 71, 128, 0.1);
background: transparent;
animation: RotateMoveSty-2 45s linear infinite;
transition: 0.5s;
}
@keyframes RotateMoveSty-2 {
0% {
left: 0px;
}
40% {
top: -30px;
}
50% {
left: 500px;
}
70% {
top: 200px;
}
80% {
left: 100px;
}
95% {
top: -30px;
}
100% {
left: 0px;
}
}
.hero-header .rotate-img img {
position: relative;
animation: RotateMove 30s linear infinite;
z-index: -1;
}
@keyframes RotateMove {
0% {
left: 0px;
}
50% {
left: 200px;
}
100% {
left: 0px;
}
}
@media (max-width: 992px) {
.hero-header {
padding-top: 280px;
}
.hero-header .rotate-img img {
margin-top: 100px;
}
}
/*** Hero Header End ***/
/*** Service Start ***/
.service .service-item {
box-shadow: 0 0 45px rgba(0, 0, 0, 0.1);
}
.service .service-item,
.service .service-item .service-icon,
.service .service-item a {
transition: 0.5s;
}
.service .service-item:hover {
background: rgba(102, 16, 242, 0.09);
border: 1px;
}
.service .service-item:hover .service-icon,
.service .service-item:hover a {
background: var(--bs-white) !important;
}
.service .service-item:hover a:hover {
background: var(--bs-primary) !important;
color: var(--bs-white);
}
/*** Service End ***/
/*** Features Start ***/
.feature .feature-img {
background: var(--bs-light);
border-radius: 58% 42% 21% 79% / 30% 29% 71% 70%;
}
/*** Features End ***/
/*** Pricing Start ***/
.price .price-item {
position: relative;
overflow: hidden;
transition: 0.5s;
}
.price .price-item:hover {
background: var(--bs-white) !important;
box-shadow: 0 0 45px rgba(0, 0, 0, 0.2);
}
.price .price-item .pice-item-offer {
position: absolute;
width: 200px;
height: 110px;
top: -45px;
right: -80px;
background: var(--bs-primary) !important;
color: var(--bs-white);
transform: rotate(42deg);
display: flex;
align-items: end;
justify-content: center;
padding-bottom: 10px;
}
/*** Pricing End ***/
/*** Blog Start ***/
.blog .blog-item {
border-radius: 10px;
}
.blog .blog-item .blog-img {
position: relative;
overflow: hidden;
background: rgba(102, 16, 242, 0.2);
border-top-right-radius: 10px;
border-top-left-radius: 10px;
}
.blog .blog-item .blog-img .blog-info {
position: absolute;
width: 100%;
height: 100%;
bottom: 0;
left: 0;
padding: 20px;
background: rgba(102, 16, 242, 0.2);
color: var(--bs-white) !important;
display: flex;
align-items: end;
justify-content: space-between;
transition: 0.5s;
}
.blog .blog-item .blog-img:hover .blog-info {
background: rgba(0, 0, 0, .4);
}
.blog .blog-item .blog-content {
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.blog .blog-item .blog-img img {
transition: 0.5s;
}
.blog .blog-item .blog-img:hover img {
transform: scale(1.3);
}
/*** Blog End ***/
/*** Testimonial Start ***/
.testimonial {
position: relative;
background: var(--bs-light);
overflow: hidden;
z-index: 1;
}
.testimonial::after {
content: "";
position: absolute;
top: 30%;
left: 0;
width: 80px;
height: 80px;
border-radius: 40px;
/* background: url(/assets/testimonial-img-2.jpg) center center no-repeat; */
animation: TestimonialMoveLeft 100s linear infinite;
z-index: -1;
}
.testimonial::before {
content: "";
position: absolute;
top: 30%;
right: 0;
width: 80px;
height: 80px;
border-radius: 40px;
/* background: url(/assets/testimonial-img-3.jpg) center center no-repeat; */
animation: TestimonialMoveRight 100s linear infinite;
z-index: -1;
}
@keyframes TestimonialMoveLeft {
0% {
left: 0px;
}
25% {
top: 100px;
}
50% {
left: 100%;
}
75% {
top: 80%;
}
100% {
left: 0px;
}
}
@keyframes TestimonialMoveRight {
0% {
right: 0px;
}
25% {
top: 100px;
}
50% {
right: 100%;
}
75% {
top: 80%;
}
100% {
right: 0px;
}
}
.testimonial .testimonial-carousel.owl-carousel {
position: relative;
padding: 0 35px;
transition: 0.5s;
}
.testimonial .testimonial-carousel .owl-nav .owl-prev {
position: absolute;
top: 50%;
left: 10px;
transform: translateY(-50%);
width: 65px;
height: 65px;
border-radius: 40px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(102, 16, 242, 0.09);
color: var(--bs-primary);
transition: 0.5s;
}
.testimonial .testimonial-carousel .owl-nav .owl-next {
position: absolute;
top: 50%;
right: 10px;
transform: translateY(-50%);
width: 65px;
height: 65px;
border-radius: 40px;
display: flex;
align-items: center;
justify-content: center;
background: rgba(102, 16, 242, 0.09);
color: var(--bs-primary);
transition: 0.5s;
}
.testimonial .testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial .testimonial-carousel .owl-nav .owl-next:hover {
background: var(--bs-primary);
color: var(--bs-white) !important;
}
.testimonial-carousel .owl-dots {
width: 100%;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
margin-top: 10px;
transition: 0.5s;
}
.testimonial-carousel .owl-dots .owl-dot img {
width: 40px;
height: 40px;
border-radius: 20px;
margin-right: 15px;
transition: 0.5s;
}
.testimonial-carousel .owl-dots .owl-dot.active img {
width: 70px;
height: 70px;
border-radius: 40px;
border: 4px solid var(--bs-secondary);
}
@media (min-width: 900px) {
.testimonial .testimonial-carousel .testimonial-item .testimonial-inner p.fs-7 {
font-size: 20px;
}
}
@media (max-width: 576px) {
.testimonial .testimonial-carousel.owl-carousel {
padding: 0;
}
.testimonial .testimonial-carousel .owl-nav .owl-prev {
margin-top: -250px;
margin-left: -15px;
}
.testimonial .testimonial-carousel .owl-nav .owl-next {
margin-top: -250px;
margin-right: -15px;
}
}
/*** Testimonial End ***/
/*** Contact Start ***/
.contact {
position: relative;
overflow: hidden;
transition: 0.5s;
z-index: 1;
}
.contact-bubble {
content: "";
position: absolute;
top: 10%;
left: -1%;
width: 400px;
height: 400px;
border-radius: 200px;
border: 60px solid rgba(102, 16, 242, 0.1);
background: transparent;
animation: ContactBubbleLeft 50s linear infinite;
z-index: 1;
}
@keyframes ContactBubbleLeft {
0% {
left: -10%;
top: -10%;
}
25% {
left: 10%;
top: 30%;
}
50% {
left: 50%;
top: 10%;
}
75% {
left: 30%;
top: 60%;
}
100% {
left: -10%;
top: -10%;
}
}
.contact-bubble-2 {
content: "";
position: absolute;
bottom: 10%;
right: -1%;
width: 300px;
height: 300px;
border-radius: 150px;
border: 40px solid rgba(102, 16, 242, 0.1);
background: transparent;
animation: ContactBubbleRight 40s linear infinite;
z-index: 1;
}
@keyframes ContactBubbleRight {
0% {
right: -10%;
bottom: -10%;
}
25% {
right: 20%;
bottom: 30%;
}
50% {
right: 40%;
bottom: 10%;
}
75% {
right: 20%;
bottom: 40%;
}
100% {
right: -10%;
bottom: -10%;
}
}
.contact .form-floating input,
.contact .form-floating textarea {
border-radius: 10px;
border-color: #e9ecef;
}
.contact .form-floating input:focus,
.contact .form-floating textarea:focus {
border-color: var(--bs-primary);
}
.contact .form-floating label {
font-weight: 500;
}
.contact .form-check-input:checked {
background-color: var(--bs-primary);
border-color: var(--bs-primary);
}
/*** Contact End ***/
/*** Footer Start ***/
.footer {
background: var(--secondary-dark);
border-top: 1px solid var(--border-color);
padding: 60px 0;
}
.footer .footer-item a {
line-height: 35px;
color: var(--bs-dark);
transition: 0.5s;
}
.footer .footer-item p {
line-height: 35px;
}
.footer .footer-item a:hover {
letter-spacing: 2px;
color: var(--bs-primary);
}
/*** Footer End ***/
/*** copyright Start ***/
.copyright {
border-top: 1px solid rgba(255, 255, 255, 0.08);
background: var(--bs-dark) !important;
}
/*** copyright end ***/
/* Dark theme overrides - High specificity */
body.dark-mode {
background: var(--primary-dark) !important;
color: var(--text-light) !important;
}
/* Override bootstrap and other framework defaults */
.dark-mode .navbar,
.dark-mode .navbar.navbar-expand-lg,
.dark-mode .navbar.navbar-light,
.dark-mode .sticky-top.navbar-light {
background: var(--primary-dark) !important;
border-bottom: 1px solid var(--border-color);
}
.dark-mode .navbar-light .navbar-nav .nav-link {
color: var(--text-light) !important;
}
.dark-mode .navbar-light .navbar-nav .nav-link:hover,
.dark-mode .navbar-light .navbar-nav .nav-link.active {
color: var(--accent-purple) !important;
}
.dark-mode .container-fluid,
.dark-mode .header::after {
background: var(--primary-dark) !important;
}
.dark-mode .hero-header {
background: var(--primary-dark) !important;
color: var(--text-light) !important;
}
.dark-mode .bg-white,
.dark-mode .bg-light,
.dark-mode [class*="bg-"] {
background-color: var(--card-bg) !important;
}
.dark-mode .text-dark {
color: var(--text-light) !important;
}
.dark-mode .footer {
background: var(--secondary-dark) !important;
border-top: 1px solid var(--border-color);
}
.dark-mode .footer-item a,
.dark-mode .footer-item p {
color: var(--text-light) !important;
}
.dark-mode .footer-item a:hover {
color: var(--accent-purple) !important;
}
/* Override any light backgrounds */
.dark-mode .bg-breadcrumb,
.dark-mode .testimonial,
.dark-mode .contact,
.dark-mode .price .price-item,
.dark-mode .service .service-item {
background: var(--card-bg) !important;
}
/* Ensure buttons maintain visibility */
.dark-mode .btn-light {
background: var(--card-bg) !important;
color: var(--text-light) !important;
border-color: var(--border-color) !important;
}
.dark-mode .btn-light:hover {
background: var(--hover-bg) !important;
border-color: var(--accent-purple) !important;
}
/* Override any white text on dark backgrounds */
.dark-mode .text-white {
color: var(--text-light) !important;
}
/* Ensure dropdowns are visible */
.dark-mode .dropdown-menu {
background: var(--card-bg) !important;
border-color: var(--border-color) !important;
}
.dark-mode .dropdown-item {
color: var(--text-light) !important;
}
.dark-mode .dropdown-item:hover {
background: var(--hover-bg) !important;
color: var(--accent-purple) !important;
}
/* Replace white backgrounds with light gradients */
.bg-light {
background: linear-gradient(135deg, #f0f2f5 0%, #e6e9f0 100%) !important;
}
.bg-white {
background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%) !important;
}
.card {
background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
border: none;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
border-radius: 10px;
}
/* Improve contrast for text on light backgrounds */
.text-muted {
color: #475569 !important;
}
/* Add gradient to specific sections instead of flat white */
.container-fluid {
background: linear-gradient(135deg, #f0f2f5 0%, #e6e9f0 100%);
position: relative;
}
/* Make sure content is above overlays */
.container {
position: relative;
z-index: 2;
}
/* Ensure consistent contrast across all sections */
.text-light {
color: rgba(255, 255, 255, 0.9) !important;
}
.text-muted {
color: rgba(160, 160, 184, 0.8) !important;
}
/* Make sure light text is only on dark backgrounds */
.hero-header h1,
.hero-header p,
.hero-header .btn-outline-light,
.hero-header .text-light {
color: #ffffff !important;
}
/* Make dark sections have more depth with gradients */
.hero-header {
background: linear-gradient(135deg, #0a0a0f 0%, #1a1a2e 100%);
}
/* Ensure buttons have good contrast */
.btn-outline-light {
border-color: rgba(255, 255, 255, 0.6);
}
.btn-outline-light:hover {
background-color: rgba(255, 255, 255, 0.1);
border-color: #ffffff;
}
/* Fix contrast in accordion */
.accordion-button {
background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
color: #1e293b;
}
.accordion-body {
background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
}
/* Testimonial cards with better contrast */
.testimonial-item {
background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
}
/* Fix any glass cards */
.glass-card {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 12px;
}
/* Code block line numbers */
.code-block pre {
counter-reset: line;
padding: 0;
margin: 0;
}
.code-block pre code {
counter-increment: line;
position: relative;
padding-left: 2.5em;
line-height: 1.5;
display: block;
}
.code-block pre code::before {
content: counter(line);
position: absolute;
left: 0;
color: rgba(175, 175, 175, 0.5);
width: 2em;
text-align: right;
padding-right: 0.5em;
}
/* Gaussian gradients for code block and cards */
.code-block {
background: linear-gradient(135deg, rgba(20, 20, 40, 0.95) 0%, rgba(30, 30, 60, 0.95) 100%);
box-shadow:
0 10px 30px rgba(0, 0, 0, 0.3),
inset 0 0 60px rgba(138, 43, 226, 0.1),
inset 0 0 20px rgba(59, 130, 246, 0.1);
border-radius: 12px;
overflow: hidden;
}
.card, .glass-card {
background: linear-gradient(135deg, rgba(25, 25, 50, 0.9) 0%, rgba(35, 35, 70, 0.9) 100%);
box-shadow:
0 8px 24px rgba(0, 0, 0, 0.2),
inset 0 0 40px rgba(138, 43, 226, 0.08),
inset 0 0 10px rgba(59, 130, 246, 0.08);
border-radius: 12px;
overflow: hidden;
}
/* Code with line numbers */
.code-with-line-numbers {
counter-reset: line;
position: relative;
}
.code-with-line-numbers code {
display: block;
position: relative;
padding-left: 3em;
}
.code-with-line-numbers code[data-syntax="ruby"]::before {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2em;
background: rgba(30, 30, 60, 0.5);
}
.code-with-line-numbers code[data-syntax="ruby"] {
color: #f8f8f2;
}
.code-with-line-numbers code[data-syntax="ruby"]::after {
content: "";
position: absolute;
left: 2em;
top: 0;
bottom: 0;
width: 1px;
background: rgba(255, 255, 255, 0.1);
}
.code-with-line-numbers code[data-syntax="ruby"] .keyword {
color: #ff79c6;
}
.code-with-line-numbers code[data-syntax="ruby"] .string {
color: #f1fa8c;
}
.code-with-line-numbers code[data-syntax="ruby"] .function {
color: #50fa7b;
}
.code-with-line-numbers code[data-syntax="ruby"] .variable {
color: #8be9fd;
}
.code-with-line-numbers code[data-syntax="ruby"] .comment {
color: #6272a4;
}
.code-with-line-numbers code[data-syntax="ruby"]>span {
counter-increment: line;
display: block;
line-height: 1.2;
margin: 0;
padding: 0;
}
.code-with-line-numbers code[data-syntax="ruby"]>span::before {
content: counter(line);
position: absolute;
left: 0.5em;
color: rgba(175, 175, 175, 0.5);
text-align: right;
width: 1em;
}
/* Fix for student.rb code block to ensure no whitespace between lines */
.code-with-line-numbers code[data-syntax="ruby"] {
line-height: 1;
}
.code-with-line-numbers code {
display: block;
position: relative;
padding-left: 3em;
line-height: 1.2;
}
/* Special styling for main heading text */
.display-3 {
font-family: 'Mokoto', 'Inter', sans-serif !important;
font-weight: normal;
background: linear-gradient(90deg, #FDBD5B 0%, #BF89E6 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-fill-color: transparent;
text-shadow: none;
}
/* Lead text under headings should be regular */
.lead {
font-family: 'Inter', sans-serif !important;
font-weight: normal;
color: var(--text-light);
}
/* Specific styling for student.rb code block to eliminate whitespace */
pre.code-with-line-numbers {
line-height: 1;
}
pre.code-with-line-numbers code[data-syntax="ruby"] span {
line-height: 1;
margin: 0;
padding: 0;
}
/* Remove spacing within code block spans */
.code-with-line-numbers code span {
font-size: 14px;
}
/* Mobile-specific styles for portfolio completion boxes */
@media (max-width: 768px) {
.hero-header .d-flex.align-items-center.gap-4 {
flex-direction: column;
width: 100%;
}
.hero-header .glass-card.text-center {
margin-bottom: 15px;
width: 100%;
}
}
/* Purple gradient for primary buttons */
.btn-primary, .btn-primary.btn-lg {
background: linear-gradient(135deg, #8B5CF6 0%, #6025BA 100%) !important;
border: none;
box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3);
transition: all 0.3s ease;
}
.btn-primary:hover, .btn-primary.btn-lg:hover {
background: linear-gradient(135deg, #9361FF 0%, #7B3FD5 100%) !important;
transform: translateY(-3px);
box-shadow: 0 8px 25px rgba(139, 92, 246, 0.4);
}
/* Fix hamburger menu icon */
.navbar-toggler .fa-bars {
color: #fff;
font-size: 1.5rem;
}
.navbar-toggler {
border: 1px solid rgba(255, 255, 255, 0.2);
padding: 0.5rem 0.75rem;
}
/* Mobile navbar fixes */
@media (max-width: 992px) {
.navbar-nav {
flex-direction: column !important;
padding-top: 1rem;
}
.navbar-nav .nav-item {
margin-bottom: 0.5rem;
}
}
/* Enhanced responsive styles for mobile */
@media (max-width: 992px) {
/* Better responsive styles for navbar */
.navbar-collapse {
background: linear-gradient(135deg, rgba(10, 10, 15, 0.98) 0%, rgba(26, 26, 46, 0.98) 100%);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
border-radius: 0;
padding: 20px;
margin: 0;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
text-align: center;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100vh;
z-index: 1050;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
overflow-y: auto;
transition: all 0.3s ease;
}
/* Center the nav items vertically in the fullscreen menu */
.navbar-collapse .navbar-nav {
margin-top: -80px;
}
/* Transition for hiding elements */
.navbar-brand, .navbar-toggler {
transition: opacity 0.2s ease;
}
/* Ensure dropdown menu works properly on mobile */
.navbar-nav .dropdown-menu {
border: none;
background: rgba(15, 15, 30, 0.7) !important;
margin: 10px auto;
text-align: center;
max-width: 200px;
box-shadow: none !important;
}
/* Fix navbar toggler position to fit snugly */
.navbar-toggler {
padding: 4px 8px;
margin: 0;
margin-left: 10px;
border-radius: 6px;
align-self: center;
border: 1px solid rgba(255, 255, 255, 0.15);
position: relative;
z-index: 1060;
}
.navbar-toggler .fa-bars {
font-size: 1.2rem;
}
/* Improved navbar brand on mobile */
.navbar-brand {
padding: 0;
margin-right: 0;
z-index: 1060;
position: relative;
}
/* Make the navbar more compact on mobile */
.navbar {
min-height: 60px;
padding: 5px 12px !important;
display: flex;
align-items: center;
justify-content: space-between;
background: rgba(10, 10, 15, 0.95) !important;
}
/* Better styling for hero section on smaller screens */
.hero-header {
padding-top: 170px !important;
padding-bottom: 50px;
}
/* Add spacing for hero call to action buttons on mobile */
.hero-header .d-flex.gap-3 {
flex-direction: column;
width: 100%;
}
.hero-header .btn {
margin-bottom: 10px;
width: 100%;
}
/* Make navbar links take full width on mobile */
.navbar-nav .nav-item,
.navbar-nav .nav-link {
width: 100%;
margin: 8px 0;
display: block;
font-size: 1.2rem;
}
/* Make dropdown items match the style */
.navbar-nav .dropdown-item {
padding: 8px;
font-size: 1.1rem;
}
}
/* Extra small devices */
@media (max-width: 576px) {
.container {
padding-left: 20px;
padding-right: 20px;
}
.hero-header h1 {
font-size: 2.2rem;
}
.hero-header .lead {
font-size: 1rem;
}
/* Increased spacing for smaller devices */
.hero-header {
padding-top: 220px !important;
}
}
