aboutsummaryrefslogtreecommitdiff
path: root/src/App.css
diff options
context:
space:
mode:
Diffstat (limited to 'src/App.css')
-rw-r--r--src/App.css561
1 files changed, 561 insertions, 0 deletions
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..ca4c3b4
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,561 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+:root {
+ --primary-color: #7c3aed;
+ --primary-dark: #5b21b6;
+ --secondary-color: #db2777;
+ --accent-color: #f472b6;
+ --text-color: #e2e8f0;
+ --light-text: #94a3b8;
+ --background: #0f172a;
+ --section-bg: #1e293b;
+ --card-bg: #1e293b;
+ --gradient-start: #7c3aed;
+ --gradient-end: #db2777;
+ --nav-bg: rgba(15, 23, 42, 0.8);
+ --card-border: rgba(148, 163, 184, 0.1);
+}
+
+body {
+ line-height: 1.6;
+ color: var(--text-color);
+ background: var(--background);
+}
+
+.app {
+ opacity: 0;
+ transform: translateY(20px);
+ transition: opacity 0.6s ease-out, transform 0.6s ease-out;
+ width: 100%;
+ min-height: 100vh;
+}
+
+.app.loaded {
+ opacity: 1;
+ transform: translateY(0);
+}
+
+.navbar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 1.5rem 5%;
+ background: var(--nav-bg);
+ backdrop-filter: blur(10px);
+ z-index: 1000;
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
+ border-bottom: 1px solid var(--card-border);
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: 700;
+ color: var(--accent-color);
+ text-shadow: 0 0 10px rgba(244, 114, 182, 0.3);
+}
+
+.nav-links {
+ display: flex;
+ gap: 2rem;
+ list-style: none;
+}
+
+.nav-links a {
+ text-decoration: none;
+ color: var(--text-color);
+ font-weight: 500;
+ transition: all 0.3 ease;
+ position: relative;
+ cursor: pointer;
+}
+
+.nav-links a::after {
+ content: "";
+ position: absolute;
+ bottom: -5px;
+ left: 0;
+ width: 0;
+ height: 2px;
+ background: var(--accent-color);
+ transition: width 0.3s ease;
+}
+
+.nav-links a:hover {
+ color: var(--accent-color);
+}
+
+.nav-links a:hover::after {
+ width: 100%;
+}
+
+/* Hero Section */
+
+.hero {
+ min-height: 100vh;
+ background: linear-gradient(
+ 135deg,
+ var(--gradient-start) 0%,
+ var(--gradient-end) 100%
+ );
+
+ display: flex;
+ align-items: center;
+ padding: 0 5%;
+ position: relative;
+ overflow: hidden;
+}
+
+.hero-container {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 4rem;
+ max-width: 1400px;
+ margin: 0 auto;
+ width: 100%;
+ padding-top: 100px;
+}
+
+.hero-content {
+ flex: 1;
+ text-align: left;
+ max-width: 600px;
+ position: relative;
+ z-index: 2;
+}
+
+.hero-badge {
+ display: inline-block;
+ padding: 0.5rem 1rem;
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 50px;
+ margin-bottom: 1.5rem;
+ backdrop-filter: blur(5px);
+ border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.glitch {
+ font-size: 4.5rem;
+ font-weight: 800;
+ text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
+ position: relative;
+ margin-bottom: 1rem;
+ line-height: 1.1;
+}
+
+.hero-subtitle {
+ font-size: 2rem;
+ color: var(--accent-color);
+ margin-bottom: 1.5rem;
+ font-weight: 600;
+}
+
+.hero-description {
+ font-size: 1.1rem;
+ margin-bottom: 2rem;
+ line-height: 1.7;
+}
+
+.cta-buttons {
+ display: flex;
+ gap: 1rem;
+ margin-bottom: 2rem;
+}
+
+.cta-primary,
+.cta-secondary {
+ padding: 0.8rem 2rem;
+ border-radius: 50px;
+ font-weight: 600;
+ font-size: 1rem;
+ text-decoration: none;
+ transition: all 0.3s ease;
+ position: relative;
+ overflow: hidden;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-width: 160px;
+}
+
+.cta-primary {
+ background: white;
+ color: var(--primary-color);
+ box-shadow: 0 4px 15px rgba(255, 255, 255, 0.2);
+ border: 2px solid white;
+}
+
+.cta-secondary {
+ background: transparent;
+ color: white;
+ box-shadow: 0 4px 15px rgba(255, 255, 255, 0.2);
+ border: 2px solid white;
+ backdrop-filter: blur(5px);
+}
+
+.cta-secondary:hover {
+ background: rgba(255, 255, 255, 0.1);
+ border-color: rgba(255, 255, 255, 0.3);
+ transform: translateY(-2px);
+}
+
+.cta-secondary:active {
+ transform: translateY(0);
+}
+
+.cta-secondary::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: 0.5s;
+}
+
+.cta-secondary:hover::before {
+ left: 100%;
+}
+
+.social-links {
+ display: flex;
+ gap: 1.5rem;
+}
+
+.social-links a {
+ color: white;
+ font-size: 1.5rem;
+ transition: all 0.3s ease;
+}
+
+.social-links a:hover {
+ color: var(--accent-color);
+}
+
+.floating-card {
+ position: absolute;
+ bottom: 2rem;
+ right: -2rem;
+ background: rgba(255, 255, 255, 0.1);
+ backdrop-filter: blur(10px);
+ padding: 1rem 1.5rem;
+ border-radius: 15px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
+}
+
+.card-content {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+
+.card-text {
+ color: white;
+ font-size: 0.9rem;
+ font-weight: 500;
+}
+
+.card-icon {
+ font-size: 1.5rem;
+}
+
+.hero-image-container {
+ flex: 1;
+ position: relative;
+ max-width: 600px;
+}
+
+.code-display {
+ width: 100%;
+}
+
+/* Hero Media Queries */
+
+@media (max-width: 1024px) {
+ .hero-container {
+ flex-direction: column;
+ text-align: center;
+ gap: 3rem;
+ padding-top: 120px;
+ }
+
+ .hero-content {
+ text-align: center;
+ max-width: 100%;
+ }
+
+ .cta-buttons {
+ justify-content: center;
+ }
+
+ .social-links {
+ justify-content: center;
+ }
+}
+
+@media (max-width: 768px) {
+ .hero-image-container {
+ display: none;
+ }
+}
+
+/* Projects Sections */
+
+.projects {
+ padding: 6rem 5%;
+ background-color: var(--background);
+ position: relative;
+}
+
+.projects h2 {
+ text-align: center;
+ font-size: 2.5rem;
+ margin-bottom: 3rem;
+}
+
+.project-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: 2rem;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.project-card {
+ background: var(--card-bg);
+ border-radius: 1rem;
+ overflow: hidden;
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
+ transition: all 0.3 ease;
+ border: 1px solid var(--card-border);
+ position: relative;
+ display: flex;
+ flex-direction: column;
+}
+
+.project-card::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(
+ 135deg,
+ var(--gradient-start) 0%,
+ var(--gradient-end) 100%
+ );
+
+ opacity: 0;
+ transition: opacity 0.3s ease;
+ z-index: 1;
+}
+
+.project-card:hover::before {
+ opacity: 0.1;
+}
+
+.project-card:hover {
+ transform: translateY(-10px) scale(1.02);
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
+ border-color: var(--accent-color);
+}
+
+.project-image {
+ height: 240px;
+ background-size: cover;
+ background-position: center;
+ position: relative;
+ overflow: hidden;
+}
+
+.project-image::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(
+ 45deg,
+ transparent 0%,
+ rgba(255, 255, 255, 0.1) 50%,
+ transparent 100%
+ );
+ transform: translateX(-100%);
+ transition: transform 0.6s ease;
+}
+
+.project-card:hover .project-image::after {
+ transform: translateX(100%);
+}
+
+.project-card h3 {
+ padding: 1.5rem 1.5rem 0.5rem;
+ font-size: 1.5rem;
+ color: var(--text-color);
+}
+
+.project-card p {
+ padding: 0 1.5rem 1rem;
+ color: var(--light-text);
+ flex-grow: 1;
+}
+
+.project-tech {
+ padding: 0 1.5rem 1.5rem;
+ display: flex;
+ gap: 0.5rem;
+ flex-wrap: wrap;
+}
+
+.project-tech span {
+ padding: 0.3rem 0.8rem;
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 50px;
+ font-size: 0.8rem;
+ color: var(--accent-color);
+ border: 1px solid rgba(244, 114, 182, 0.2);
+}
+
+/* contact section */
+
+.contact {
+ padding: 6rem 5%;
+ background: var(--section-bg);
+ position: relative;
+}
+
+.contact::before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: linear-gradient(
+ 90deg,
+ transparent,
+ var(--accent-color),
+ transparent
+ );
+}
+
+.contact h2 {
+ text-align: center;
+ font-size: 2.5rem;
+ margin-bottom: 3rem;
+}
+
+.contact-content {
+ max-width: 600px;
+ margin: 0 auto;
+}
+
+.contact-form {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.contact-form input,
+.contact-form textarea {
+ padding: 1rem;
+ border: 2px solid var(--card-border);
+ border-radius: 0.5rem;
+ font-size: 1rem;
+ transition: all 0.3s ease;
+ background: var(--card-bg);
+ color: var(--text-color);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+}
+
+.contact-form input:focus,
+.contact-form textarea:focus {
+ outline: none;
+ border-color: var(--accent-color);
+ box-shadow: 0 4px 12px rgba(244, 144, 182, 0.2);
+}
+
+.contact-form textarea {
+ min-height: 150px;
+ resize: vertical;
+}
+
+.submit-btn {
+ padding: 1rem;
+ background: var(--primary-color);
+ color: white;
+ border: none;
+ border-radius: 0.5rem;
+ font-size: 1rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3);
+ position: relative;
+ overflow: hidden;
+}
+
+.submit-btn::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: 0.5s;
+}
+
+.submit-btn:hover::before {
+ left: 100%;
+}
+
+.form-status {
+ margin-top: 1rem;
+ padding: 1rem;
+ border-radius: 0.5rem;
+ text-align: center;
+ font-weight: 500;
+}
+
+.form-status.success {
+ background: rgba(34, 197, 94, 0.1);
+ border: 1px solid rgba(34, 197, 94, 0.2);
+ color: #4ade80;
+}
+
+.form-status.error {
+ background: rgba(239, 68, 68, 0.1);
+ border: 1px solid rgba(239, 68, 68, 0.2);
+ color: #f87171;
+}
+
+.footer {
+ text-align: center;
+ padding: 2rem;
+ background: var(--background);
+ color: var(--text-color);
+ border-top: 1px solid var(--card-border);
+}