.wpcf7 .screen-reader-response {
position: absolute;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
padding: 0;
border: 0;
word-wrap: normal !important;
}
.wpcf7 .hidden-fields-container {
display: none;
}
.wpcf7 form .wpcf7-response-output {
margin: 2em 0.5em 1em;
padding: 0.2em 1em;
border: 2px solid #00a0d2; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
border-color: #46b450; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
border-color: #dc3232; }
.wpcf7 form.spam .wpcf7-response-output {
border-color: #f56e28; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: #ffb900; }
.wpcf7-form-control-wrap {
position: relative;
}
.wpcf7-not-valid-tip {
color: #dc3232; font-size: 1em;
font-weight: normal;
display: block;
}
.use-floating-validation-tip .wpcf7-not-valid-tip {
position: relative;
top: -2ex;
left: 1em;
z-index: 100;
border: 1px solid #dc3232;
background: #fff;
padding: .2em .8em;
width: 24em;
}
.wpcf7-list-item {
display: inline-block;
margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
content: " ";
}
.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d; opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
}
form.submitting .wpcf7-spinner {
visibility: visible;
}
.wpcf7-spinner::before {
content: '';
position: absolute;
background-color: #fbfbfc; top: 4px;
left: 4px;
width: 6px;
height: 6px;
border: none;
border-radius: 100%;
transform-origin: 8px 8px;
animation-name: spin;
animation-duration: 1000ms;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
.wpcf7-spinner::before {
animation-name: blink;
animation-duration: 2000ms;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes blink {
from {
opacity: 0;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.wpcf7 [inert] {
opacity: 0.5;
}
.wpcf7 input[type="file"] {
cursor: pointer;
}
.wpcf7 input[type="file"]:disabled {
cursor: default;
}
.wpcf7 .wpcf7-submit:disabled {
cursor: not-allowed;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
direction: ltr;
}
.wpcf7-reflection > output {
display: list-item;
list-style: none;
}
.wpcf7-reflection > output[hidden] {
display: none;
}:root {
--bg-color: #ffffff;
--text-color: #1a1a1a;
--text-muted: #666666;
--primary: #5efff6; --secondary: #bd00ff; --accent: #f0f0f0;
--font-heading: 'Space Grotesk', sans-serif;
--font-body: 'Outfit', sans-serif;
--container-width: 1200px;
--section-padding: 100px 0;
--transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
body.dark-mode {
--bg-color: #050507;
--text-color: #e0e0e0;
--text-muted: #a0a0a0;
--accent: #151515; }
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
font-family: var(--font-body);
line-height: 1.6;
overflow-x: hidden;
position: relative;
} .cursor-dot,
.cursor-outline {
position: fixed;
top: 0;
left: 0;
transform: translate(-50%, -50%);
border-radius: 50%;
z-index: 9999;
pointer-events: none;
}
.cursor-dot {
width: 8px;
height: 8px;
background-color: var(--primary);
}
.cursor-outline {
width: 40px;
height: 40px;
border: 1px solid var(--primary);
transition: width 0.2s, height 0.2s, background-color 0.2s;
}
body:hover .cursor-outline {
width: 40px;
height: 40px;
background-color: rgba(94, 255, 246, 0.05);
}
a {
text-decoration: none;
color: inherit;
}
ul {
list-style: none;
}
.container {
max-width: var(--container-width);
margin: 0 auto;
padding: 0 20px;
}
.container-narrow {
max-width: 800px;
}
.highlight {
color: var(--primary);
}
.gradient-text {
background: linear-gradient(90deg, var(--primary), var(--secondary));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
} .header {
position: fixed;
top: 0;
left: 0;
width: 100%;
padding: 20px 0;
z-index: 100;
transition: var(--transition);
backdrop-filter: blur(10px);
background: rgba(255, 255, 255, 0.8);
}
body.dark-mode .header {
background: rgba(5, 5, 7, 0.8);
}
.nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-family: var(--font-heading);
font-size: 1.5rem;
font-weight: 700;
letter-spacing: 2px;
}
.nav-list {
display: flex;
gap: 40px;
align-items: center;
}
.nav-link {
font-size: 0.95rem;
font-weight: 500;
position: relative;
transition: var(--transition);
}
.nav-link::after {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background: var(--primary);
transition: var(--transition);
}
.nav-link:hover {
color: var(--primary);
}
.nav-link:hover::after {
width: 100%;
}
.nav-link.btn-primary {
padding: 10px 25px;
border: 1px solid var(--primary);
border-radius: 50px;
}
.nav-link.btn-primary:hover {
background: rgba(94, 255, 246, 0.1);
box-shadow: 0 0 15px rgba(94, 255, 246, 0.3);
}
.nav-link.btn-primary::after {
display: none;
}
.nav-link.active-section {
padding: 10px 25px;
border: 1px solid var(--primary);
border-radius: 50px;
color: var(--primary);
}
.nav-link.active-section::after {
display: none;
} .theme-toggle {
background: transparent;
border: 1px solid rgba(0, 0, 0, 0.1);
cursor: pointer;
padding: 8px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
transition: var(--transition);
color: var(--text-color);
}
body.dark-mode .theme-toggle {
border-color: rgba(255, 255, 255, 0.2);
color: #e0e0e0;
}
.theme-toggle:hover {
background: rgba(0, 0, 0, 0.05);
transform: rotate(15deg);
}
body.dark-mode .theme-toggle:hover {
background: rgba(255, 255, 255, 0.1);
}
.theme-icon {
width: 20px;
height: 20px;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
} .lang-dropdown-container {
position: relative;
}
.lang-menu {
position: absolute;
top: 120%;
right: 0;
background: rgba(255, 255, 255, 0.95);
border: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
border-radius: 12px;
padding: 10px;
display: none;
flex-direction: column;
gap: 5px;
min-width: 150px;
z-index: 1000;
backdrop-filter: blur(10px);
}
.lang-menu.active {
display: flex;
animation: fadeIn 0.2s ease-out;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.lang-menu a {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 12px;
border-radius: 8px;
color: var(--text-color);
font-size: 0.9rem;
transition: var(--transition);
}
.lang-menu a:hover {
background: rgba(94, 255, 246, 0.15);
color: var(--primary);
}
.lang-menu img {
border-radius: 2px;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
}
body.dark-mode .lang-menu {
background: rgba(20, 20, 25, 0.95);
border-color: rgba(255, 255, 255, 0.1);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
body.dark-mode .lang-menu a:hover {
background: rgba(255, 255, 255, 0.1);
} .goog-te-banner-frame.skiptranslate {
display: none !important;
}
body {
top: 0px !important;
} .goog-tooltip {
display: none !important;
}
.goog-tooltip:hover {
display: none !important;
}
.goog-text-highlight {
background-color: transparent !important;
border: none !important;
box-shadow: none !important;
} .hero {
height: 400vh; position: relative;
padding-top: 0;
color: #e0e0e0;
}
.hero-sticky-container {
position: sticky;
top: 0;
width: 100%;
height: 100vh;
display: flex; align-items: center;
justify-content: center;
overflow: hidden;
}
.hero-bg-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
#hero-canvas {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.hero-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(circle at center, transparent 0%, #050507 90%);
} .hero-intro-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 100%;
z-index: 2;
transition: opacity 0.5s ease;
pointer-events: none; }
.intro-title {
font-family: var(--font-heading);
font-size: 4rem;
font-weight: 700;
line-height: 1.2;
} .hero-content {
text-align: center;
z-index: 10; max-width: 900px;
position: absolute; top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none; }
.hero-title {
font-family: var(--font-heading);
font-size: 5rem;
line-height: 1.1;
font-weight: 700;
margin-bottom: 20px;
}
.hero-title .line {
display: block;
}
.hero-subtitle {
font-size: 1.2rem;
color: #e0e0e0; max-width: 600px;
margin: 0 auto 40px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); }
.hero-cta {
display: flex;
gap: 20px;
justify-content: center;
}
.btn-glow {
display: inline-block;
background: var(--primary);
color: var(--text-color);
padding: 15px 35px;
border-radius: 50px;
font-weight: 600;
transition: var(--transition);
border: none;
cursor: pointer;
box-shadow: 0 0 20px rgba(94, 255, 246, 0.4);
text-align: center;
}
.btn-glow:hover {
box-shadow: 0 0 40px rgba(94, 255, 246, 0.6);
transform: translateY(-2px);
}
.btn-outline {
display: inline-block;
background: transparent;
color: #e0e0e0;
padding: 15px 35px;
border-radius: 50px;
font-weight: 600;
border: 1px solid rgba(255, 255, 255, 0.2);
transition: var(--transition);
text-align: center;
}
.btn-outline:hover {
border-color: var(--primary);
color: var(--primary);
}
.scroll-indicator {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
opacity: 0.7;
animation: bounce 2s infinite;
}
.mouse {
width: 26px;
height: 40px;
border: 2px solid #888890;
border-radius: 20px;
position: relative;
}
.mouse::before {
content: '';
position: absolute;
top: 6px;
left: 50%;
transform: translateX(-50%);
width: 4px;
height: 4px;
background: #888890;
border-radius: 50%;
animation: scrollMouse 1.5s infinite;
}
@keyframes bounce {
0%,
20%,
50%,
80%,
100% {
transform: translateX(-50%) translateY(0);
}
40% {
transform: translateX(-50%) translateY(-10px);
}
60% {
transform: translateX(-50%) translateY(-5px);
}
}
@keyframes scrollMouse {
0% {
transform: translateX(-50%) translateY(0);
opacity: 1;
}
100% {
transform: translateX(-50%) translateY(15px);
opacity: 0;
}
} .section {
padding: var(--section-padding);
scroll-margin-top: 80px;
}
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-title {
font-family: var(--font-heading);
font-size: 3rem;
margin-bottom: 10px;
}
.section-desc {
color: var(--text-muted);
font-size: 1.1rem;
} .services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
}
.service-card {
background: rgba(0, 0, 0, 0.03);
border: 1px solid rgba(0, 0, 0, 0.1);
padding: 40px 30px;
border-radius: 20px;
transition: var(--transition);
position: relative;
overflow: hidden;
cursor: pointer; }
.service-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, rgba(94, 255, 246, 0.1), transparent 60%);
opacity: 0;
transition: var(--transition);
}
.service-card:hover {
transform: translateY(-10px);
border-color: rgba(94, 255, 246, 0.3);
box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.5);
}
.service-card:hover::before {
opacity: 1;
}
.card-icon {
width: 60px;
height: 60px;
background: rgba(0, 0, 0, 0.05);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 25px;
color: var(--primary);
}
.service-card h3 {
font-family: var(--font-heading);
font-size: 1.5rem;
margin-bottom: 15px;
}
.service-card p {
color: var(--text-muted);
font-size: 0.95rem;
} #about {
background-color: #f5f5f7;
}
body.dark-mode #about {
background-color: #0c0c0e;
}
.about-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}
.about-content p {
margin-bottom: 20px;
color: var(--text-muted);
font-size: 1.05rem;
}
.stats-list {
display: flex;
gap: 50px;
margin-top: 40px;
}
.stats-list li {
display: flex;
flex-direction: column;
}
.stat-number {
font-family: var(--font-heading);
font-size: 3rem;
color: var(--primary);
font-weight: 700;
}
.stat-label {
text-transform: uppercase;
letter-spacing: 1px;
font-size: 0.8rem;
color: var(--text-muted);
}
.visual-wrapper {
position: relative;
width: 100%;
height: 400px; }
.node {
position: absolute;
background: var(--bg-color);
border: 2px solid var(--primary);
border-radius: 50%;
box-shadow: 0 0 20px rgba(94, 255, 246, 0.5);
z-index: 2;
}
.node-1 {
width: 80px;
height: 80px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
animation: pulse 3s infinite;
}
.node-2 {
width: 50px;
height: 50px;
top: 20%;
left: 80%;
border-color: var(--secondary);
animation: float 6s infinite;
}
.node-3 {
width: 40px;
height: 40px;
bottom: 20%;
left: 20%;
border-color: var(--secondary);
animation: float 5s infinite reverse;
}
.connection {
position: absolute;
background: linear-gradient(90deg, var(--primary), transparent);
height: 2px;
transform-origin: left;
opacity: 0.3;
}
.conn-1 {
top: 50%;
left: 50%;
width: 200px;
transform: rotate(-45deg);
}
.conn-2 {
top: 50%;
left: 50%;
width: 150px;
transform: rotate(135deg);
}
@keyframes pulse {
0% {
box-shadow: 0 0 0 0 rgba(94, 255, 246, 0.7);
}
70% {
box-shadow: 0 0 0 20px rgba(94, 255, 246, 0);
}
100% {
box-shadow: 0 0 0 0 rgba(94, 255, 246, 0);
}
}
@keyframes float {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-20px);
}
} .contact-form {
background: rgba(0, 0, 0, 0.03);
padding: 50px;
border-radius: 20px;
border: 1px solid rgba(0, 0, 0, 0.1);
}
.input-group {
position: relative;
margin-bottom: 30px;
}
.input-group input,
.input-group textarea {
width: 100%;
padding: 15px;
background: rgba(0, 0, 0, 0.05);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 8px;
color: var(--text-color);
font-family: inherit;
font-size: 1rem;
outline: none;
transition: var(--transition);
}
.input-group input:focus,
.input-group textarea:focus {
border-color: var(--primary);
background: rgba(94, 255, 246, 0.05);
}
.input-group label {
position: absolute;
left: 15px;
top: 15px;
color: var(--text-muted);
pointer-events: none;
transition: var(--transition);
font-size: 1rem;
}
.input-group input:focus~label,
.input-group input:not(:placeholder-shown)~label,
.input-group textarea:focus~label,
.input-group textarea:not(:placeholder-shown)~label {
top: -22px;
left: 0;
font-size: 0.85rem;
color: var(--primary);
}
.btn-wide {
width: 100%;
margin-top: 10px;
} body.dark-mode .input-group input,
body.dark-mode .input-group textarea {
background: rgba(255, 255, 255, 0.05);
border-color: rgba(255, 255, 255, 0.1);
color: var(--text-color);
}
body.dark-mode .input-group input:focus,
body.dark-mode .input-group textarea:focus {
border-color: var(--primary);
background: rgba(94, 255, 246, 0.05);
}
body.dark-mode .input-group label {
color: var(--text-muted);
}
body.dark-mode .btn-glow {
color: #000000; } .footer {
padding: 50px 0;
border-top: 1px solid rgba(0, 0, 0, 0.1);
margin-top: 50px;
}
.footer-content {
display: flex;
justify-content: space-between;
align-items: center;
}
.footer-brand p {
color: var(--text-muted);
font-size: 0.9rem;
margin-top: 5px;
}
.footer-links {
display: flex;
gap: 30px;
}
.footer-links a {
color: var(--text-muted);
font-size: 0.9rem;
transition: var(--transition);
}
.footer-links a:hover {
color: var(--primary);
} .reveal-text {
opacity: 0; transform: translateY(30px);
transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal-up {
opacity: 0;
transform: translateY(50px);
transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal-left {
opacity: 0;
transform: translateX(50px);
transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal-right {
opacity: 0;
transform: translateX(-50px);
transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.active {
opacity: 1 !important;
transform: translateY(0) translateX(0) !important;
}
.delay-1 {
transition-delay: 0.1s;
}
.delay-2 {
transition-delay: 0.2s;
}
.delay-3 {
transition-delay: 0.3s;
} @media (max-width: 900px) {
.hero-title {
font-size: 3.5rem;
}
.about-grid {
grid-template-columns: 1fr;
}
.about-visual {
display: none;
} .hamburger {
display: block;
cursor: pointer;
}
.nav-list {
display: none;
position: absolute;
top: 70px;
left: 0;
width: 100%;
background: var(--bg-color);
flex-direction: column;
padding: 20px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.hamburger .bar {
display: block;
width: 25px;
height: 3px;
background: var(--text-color);
margin: 5px auto;
transition: var(--transition);
}
}
@media (max-width: 500px) {
.hero-title {
font-size: 2.5rem;
}
.hero-cta {
flex-direction: column;
}
} .modal-backdrop {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.7);
backdrop-filter: blur(8px);
z-index: 1000;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
}
.modal {
position: fixed;
top: 50% !important;
left: 50% !important;
bottom: auto !important;
right: auto !important;
margin: 0 !important;
transform: translate(-50%, -40%);
width: 90%;
max-width: 600px;
background: #ffffff;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 20px;
padding: 40px;
z-index: 1001;
opacity: 0;
pointer-events: none;
transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
}
.modal.active {
opacity: 1;
transform: translate(-50%, -50%) !important;
pointer-events: all;
}
.modal-backdrop.active {
opacity: 1;
pointer-events: all;
}
.modal-close {
position: absolute;
top: 20px;
right: 20px;
background: transparent;
border: none;
color: var(--text-muted);
font-size: 2rem;
cursor: pointer;
line-height: 1;
transition: var(--transition);
}
.modal-close:hover {
color: var(--primary);
transform: rotate(90deg);
}
.modal-content h2 {
font-family: var(--font-heading);
color: var(--secondary);
margin-bottom: 20px;
font-size: 2rem;
}
.modal-content p {
color: #000000;
margin-bottom: 20px;
font-size: 1.1rem;
}
.modal-content ul {
margin-bottom: 30px;
padding-left: 20px;
}
.modal-content ul li {
list-style-type: disc;
color: #000000;
margin-bottom: 10px;
}