KAPPA66 commited on
Commit
205e965
·
verified ·
1 Parent(s): b3ce9c1

efface cette poubelle que tu viens de faire, et crée moi un site portfolio de photographe basé sur les plus élégant site de photographe de squarespace ou de wiz en version payante

Browse files
Files changed (5) hide show
  1. components/footer.js +47 -146
  2. components/navbar.js +82 -0
  3. index.html +58 -115
  4. script.js +35 -26
  5. style.css +170 -23
components/footer.js CHANGED
@@ -1,150 +1,51 @@
1
  class CustomFooter extends HTMLElement {
2
- connectedCallback() {
3
- this.attachShadow({ mode: 'open' });
4
- this.shadowRoot.innerHTML = `
5
- <style>
6
- :host {
7
- display: block;
8
- background: #292F36;
9
- color: #F7FFF7;
10
- padding: 4rem 2rem;
11
- }
12
-
13
- .footer-container {
14
- max-width: 1400px;
15
- margin: 0 auto;
16
- display: grid;
17
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
18
- gap: 3rem;
19
- }
20
-
21
- .footer-logo {
22
- font-size: 1.5rem;
23
- font-weight: 700;
24
- color: #F7FFF7;
25
- margin-bottom: 1rem;
26
- display: inline-block;
27
- }
28
-
29
- .footer-logo span {
30
- color: #FF6B6B;
31
- }
32
-
33
- .footer-about {
34
- margin-bottom: 2rem;
35
- color: rgba(247, 255, 247, 0.7);
36
- line-height: 1.6;
37
- }
38
-
39
- .footer-title {
40
- font-size: 1.2rem;
41
- font-weight: 600;
42
- margin-bottom: 1.5rem;
43
- color: #F7FFF7;
44
- }
45
-
46
- .footer-links {
47
- display: flex;
48
- flex-direction: column;
49
- gap: 1rem;
50
- }
51
-
52
- .footer-link {
53
- color: rgba(247, 255, 247, 0.7);
54
- text-decoration: none;
55
- transition: color 0.3s;
56
- }
57
-
58
- .footer-link:hover {
59
- color: #FF6B6B;
60
- }
61
-
62
- .social-links {
63
- display: flex;
64
- gap: 1rem;
65
- }
66
-
67
- .social-link {
68
- width: 40px;
69
- height: 40px;
70
- border-radius: 50%;
71
- background: rgba(247, 255, 247, 0.1);
72
- display: flex;
73
- align-items: center;
74
- justify-content: center;
75
- transition: all 0.3s;
76
- }
77
-
78
- .social-link:hover {
79
- background: #FF6B6B;
80
- transform: translateY(-3px);
81
- }
82
-
83
- .copyright {
84
- text-align: center;
85
- margin-top: 4rem;
86
- padding-top: 2rem;
87
- border-top: 1px solid rgba(247, 255, 247, 0.1);
88
- color: rgba(247, 255, 247, 0.5);
89
- }
90
- </style>
91
-
92
- <div class="footer-container">
93
- <div>
94
- <a href="/" class="footer-logo">La <span>Pieuvre</span></a>
95
- <p class="footer-about">
96
- Agence web créative spécialisée dans le développement, le design et la stratégie digitale.
97
- Nous créons des solutions uniques et performantes pour vos projets.
98
- </p>
99
- </div>
100
-
101
- <div>
102
- <h3 class="footer-title">Services</h3>
103
- <div class="footer-links">
104
- <a href="#" class="footer-link">Développement web</a>
105
- <a href="#" class="footer-link">Design UI/UX</a>
106
- <a href="#" class="footer-link">Stratégie digitale</a>
107
- <a href="#" class="footer-link">Application mobile</a>
108
- </div>
109
- </div>
110
-
111
- <div>
112
- <h3 class="footer-title">Contact</h3>
113
- <div class="footer-links">
114
- <a href="#" class="footer-link">hello@lapieuvre.com</a>
115
- <a href="#" class="footer-link">01 23 45 67 89</a>
116
- <a href="#" class="footer-link">10 Rue des Tentacules, Paris</a>
117
- </div>
118
- </div>
119
-
120
- <div>
121
- <h3 class="footer-title">Suivez-nous</h3>
122
- <div class="social-links">
123
- <a href="#" class="social-link">
124
- <i data-feather="twitter"></i>
125
- </a>
126
- <a href="#" class="social-link">
127
- <i data-feather="instagram"></i>
128
- </a>
129
- <a href="#" class="social-link">
130
- <i data-feather="linkedin"></i>
131
- </a>
132
- <a href="#" class="social-link">
133
- <i data-feather="dribbble"></i>
134
- </a>
135
- </div>
136
- </div>
137
- </div>
138
-
139
- <div class="copyright">
140
- &copy; ${new Date().getFullYear()} La Pieuvre. Tous droits réservés.
141
- </div>
142
-
143
- <script>
144
- feather.replace();
145
- </script>
146
- `;
147
- }
148
  }
149
 
150
  customElements.define('custom-footer', CustomFooter);
 
1
  class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ background: #111;
9
+ color: #fff;
10
+ padding: 4rem 2rem;
11
+ text-align: center;
12
+ }
13
+
14
+ .footer-content {
15
+ max-width: 1400px;
16
+ margin: 0 auto;
17
+ }
18
+
19
+ .social-links {
20
+ display: flex;
21
+ justify-content: center;
22
+ gap: 1.5rem;
23
+ margin-bottom: 2rem;
24
+ }
25
+
26
+ .social-link {
27
+ color: #fff;
28
+ text-decoration: none;
29
+ font-weight: 300;
30
+ }
31
+
32
+ .copyright {
33
+ margin-top: 2rem;
34
+ font-size: 0.8rem;
35
+ opacity: 0.7;
36
+ }
37
+ </style>
38
+
39
+ <div class="footer-content">
40
+ <div class="social-links">
41
+ <a href="#" class="social-link">Instagram</a>
42
+ <a href="#" class="social-link">Behance</a>
43
+ <a href="#" class="social-link">LinkedIn</a>
44
+ </div>
45
+ <p class="copyright">© ${new Date().getFullYear()} Lucie Martin. Tous droits réservés.</p>
46
+ </div>
47
+ `;
48
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
 
51
  customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ position: fixed;
9
+ top: 0;
10
+ left: 0;
11
+ right: 0;
12
+ z-index: 1000;
13
+ background: rgba(0, 0, 0, 0.5);
14
+ backdrop-filter: blur(10px);
15
+ padding: 1.5rem 2rem;
16
+ transition: background 0.3s ease;
17
+ }
18
+
19
+ nav {
20
+ max-width: 1400px;
21
+ margin: 0 auto;
22
+ display: flex;
23
+ justify-content: space-between;
24
+ align-items: center;
25
+ }
26
+
27
+ .logo {
28
+ color: white;
29
+ font-weight: 300;
30
+ letter-spacing: 2px;
31
+ text-decoration: none;
32
+ font-size: 1.1rem;
33
+ }
34
+
35
+ .nav-links {
36
+ display: flex;
37
+ gap: 2rem;
38
+ }
39
+
40
+ .nav-link {
41
+ color: white;
42
+ text-decoration: none;
43
+ font-weight: 300;
44
+ letter-spacing: 1px;
45
+ position: relative;
46
+ }
47
+
48
+ .nav-link::after {
49
+ content: '';
50
+ position: absolute;
51
+ bottom: -5px;
52
+ left: 0;
53
+ width: 0;
54
+ height: 1px;
55
+ background: white;
56
+ transition: width 0.3s ease;
57
+ }
58
+
59
+ .nav-link:hover::after {
60
+ width: 100%;
61
+ }
62
+
63
+ @media (max-width: 768px) {
64
+ .nav-links {
65
+ display: none;
66
+ }
67
+ }
68
+ </style>
69
+
70
+ <nav>
71
+ <a href="/" class="logo">LUCIA MARTIN</a>
72
+ <div class="nav-links">
73
+ <a href="/" class="nav-link">Accueil</a>
74
+ <a href="#about" class="nav-link">À propos</a>
75
+ <a href="#contact" class="nav-link">Contact</a>
76
+ </div>
77
+ </nav>
78
+ `;
79
+ }
80
+ }
81
+
82
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -3,144 +3,87 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>La Pieuvre - Agence Web Créative</title>
7
  <link rel="stylesheet" href="style.css">
8
- <script src="https://cdn.tailwindcss.com"></script>
9
- <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
- <script src="https://unpkg.com/feather-icons"></script>
11
- <script>
12
- tailwind.config = {
13
- theme: {
14
- extend: {
15
- colors: {
16
- primary: '#FF6B6B',
17
- secondary: '#4ECDC4',
18
- dark: '#292F36',
19
- light: '#F7FFF7'
20
- }
21
- }
22
- }
23
- }
24
- </script>
25
  </head>
26
- <body class="bg-light font-sans antialiased">
27
- <custom-header></custom-header>
28
 
29
- <main class="container mx-auto px-4 py-12">
30
  <!-- Hero Section -->
31
- <section class="flex flex-col md:flex-row items-center justify-between gap-12 mb-24">
32
- <div class="md:w-1/2">
33
- <h1 class="text-4xl md:text-6xl font-bold text-dark mb-6 leading-tight">
34
- Une agence web <span class="text-primary">tentaculaire</span> pour vos projets
35
- </h1>
36
- <p class="text-xl text-gray-600 mb-8">
37
- Nous déployons nos compétences pour créer des solutions web uniques et performantes.
38
- </p>
39
- <a href="#contact" class="bg-primary hover:bg-opacity-90 text-white font-bold py-3 px-6 rounded-full transition-all shadow-lg">
40
- Parlons de votre projet
41
- </a>
42
- </div>
43
- <div class="md:w-1/2 relative">
44
- <div class="absolute -top-10 -left-10 w-32 h-32 bg-secondary rounded-full opacity-30 animate-pulse"></div>
45
- <div class="absolute -bottom-10 -right-10 w-40 h-40 bg-primary rounded-full opacity-20 animate-pulse delay-300"></div>
46
- <img src="http://static.photos/abstract/1024x576/42" alt="Design abstrait" class="relative z-10 rounded-3xl shadow-2xl">
47
  </div>
48
  </section>
49
 
50
- <!-- Services Section -->
51
- <section class="mb-24">
52
- <h2 class="text-3xl md:text-4xl font-bold text-center text-dark mb-16">
53
- Nos <span class="text-secondary">tentacules</span> expertes
54
- </h2>
55
- <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
56
- <div class="bg-white p-8 rounded-2xl shadow-lg hover:shadow-xl transition-shadow">
57
- <div class="w-16 h-16 bg-primary bg-opacity-10 rounded-full flex items-center justify-center mb-6">
58
- <i data-feather="code" class="text-primary w-8 h-8"></i>
59
- </div>
60
- <h3 class="text-xl font-bold text-dark mb-4">Développement sur mesure</h3>
61
- <p class="text-gray-600">Des solutions techniques innovantes et parfaitement adaptées à vos besoins.</p>
62
  </div>
63
- <div class="bg-white p-8 rounded-2xl shadow-lg hover:shadow-xl transition-shadow">
64
- <div class="w-16 h-16 bg-secondary bg-opacity-10 rounded-full flex items-center justify-center mb-6">
65
- <i data-feather="pen-tool" class="text-secondary w-8 h-8"></i>
66
- </div>
67
- <h3 class="text-xl font-bold text-dark mb-4">Design organique</h3>
68
- <p class="text-gray-600">Des interfaces fluides et naturelles qui captent l'attention.</p>
69
  </div>
70
- <div class="bg-white p-8 rounded-2xl shadow-lg hover:shadow-xl transition-shadow">
71
- <div class="w-16 h-16 bg-primary bg-opacity-10 rounded-full flex items-center justify-center mb-6">
72
- <i data-feather="bar-chart" class="text-primary w-8 h-8"></i>
73
- </div>
74
- <h3 class="text-xl font-bold text-dark mb-4">Stratégie digitale</h3>
75
- <p class="text-gray-600">Une approche globale pour maximiser votre présence en ligne.</p>
76
  </div>
77
  </div>
78
  </section>
79
 
80
- <!-- Projects Section -->
81
- <section class="mb-24">
82
- <h2 class="text-3xl md:text-4xl font-bold text-center text-dark mb-16">
83
- Nos <span class="text-primary">prouesses</span> récentes
84
- </h2>
85
- <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
86
- <!-- Project 1 -->
87
- <div class="relative group rounded-2xl overflow-hidden shadow-lg">
88
- <img src="http://static.photos/technology/640x360/1" alt="Projet 1" class="w-full h-64 object-cover transition-transform group-hover:scale-105">
89
- <div class="absolute inset-0 bg-gradient-to-t from-dark to-transparent opacity-90 flex items-end p-6">
90
- <div>
91
- <h3 class="text-white text-xl font-bold mb-2">Site e-commerce luxe</h3>
92
- <p class="text-gray-300">Une expérience d'achat immersive et haut de gamme</p>
93
- </div>
94
- </div>
95
- </div>
96
- <!-- Project 2 -->
97
- <div class="relative group rounded-2xl overflow-hidden shadow-lg">
98
- <img src="http://static.photos/abstract/640x360/2" alt="Projet 2" class="w-full h-64 object-cover transition-transform group-hover:scale-105">
99
- <div class="absolute inset-0 bg-gradient-to-t from-dark to-transparent opacity-90 flex items-end p-6">
100
- <div>
101
- <h3 class="text-white text-xl font-bold mb-2">Plateforme SaaS B2B</h3>
102
- <p class="text-gray-300">Une solution complète pour les entreprises</p>
103
- </div>
104
- </div>
105
- </div>
106
  </div>
107
  </section>
108
 
109
- <!-- Contact Section -->
110
- <section id="contact" class="mb-24">
111
- <div class="bg-white rounded-2xl shadow-xl p-8 md:p-12">
112
- <h2 class="text-3xl md:text-4xl font-bold text-dark mb-8">
113
- Prêt à <span class="text-secondary">collaborer</span> ?
114
- </h2>
115
- <form class="grid grid-cols-1 md:grid-cols-2 gap-6">
116
- <div>
117
- <label for="name" class="block text-gray-700 mb-2">Votre nom</label>
118
- <input type="text" id="name" class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
119
- </div>
120
- <div>
121
- <label for="email" class="block text-gray-700 mb-2">Votre email</label>
122
- <input type="email" id="email" class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
123
- </div>
124
- <div class="md:col-span-2">
125
- <label for="message" class="block text-gray-700 mb-2">Votre message</label>
126
- <textarea id="message" rows="5" class="w-full px-4 py-3 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"></textarea>
127
- </div>
128
- <button type="submit" class="md:col-span-2 bg-primary hover:bg-opacity-90 text-white font-bold py-3 px-6 rounded-full transition-all shadow-lg w-full md:w-auto">
129
- Envoyer le message
130
- </button>
131
- </form>
132
  </div>
133
  </section>
 
 
 
 
 
 
 
 
 
 
 
134
  </main>
135
 
136
  <custom-footer></custom-footer>
137
 
138
- <script src="components/header.js"></script>
139
  <script src="components/footer.js"></script>
140
  <script src="script.js"></script>
141
- <script>
142
- feather.replace();
143
- </script>
144
- <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
145
  </body>
146
  </html>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Lucie Martin | Photographie</title>
7
  <link rel="stylesheet" href="style.css">
8
+ <link rel="stylesheet" href="https://use.typekit.net/xyz1234.css"> <!-- Replace with actual font link -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  </head>
10
+ <body>
11
+ <custom-navbar></custom-navbar>
12
 
13
+ <main class="portfolio-grid">
14
  <!-- Hero Section -->
15
+ <section class="hero">
16
+ <div class="hero-content">
17
+ <h1>Lucie Martin</h1>
18
+ <p class="subtitle">Photographe d'art & portrait</p>
 
 
 
 
 
 
 
 
 
 
 
 
19
  </div>
20
  </section>
21
 
22
+ <!-- Gallery Grid -->
23
+ <section class="gallery">
24
+ <div class="grid-item" data-category="portrait">
25
+ <img src="http://static.photos/people/1024x576/1" alt="Portrait 1">
26
+ <div class="overlay">
27
+ <p class="title">Portraits Intimes</p>
28
+ </div>
29
+ </div>
30
+ <div class="grid-item" data-category="fashion">
31
+ <img src="http://static.photos/fashion/1024x576/2" alt="Fashion 1">
32
+ <div class="overlay">
33
+ <p class="title">Mode Éditoriale</p>
34
  </div>
35
+ </div>
36
+ <div class="grid-item" data-category="landscape">
37
+ <img src="http://static.photos/nature/1024x576/3" alt="Landscape 1">
38
+ <div class="overlay">
39
+ <p class="title">Paysages Urbains</p>
 
40
  </div>
41
+ </div>
42
+ <div class="grid-item" data-category="portrait">
43
+ <img src="http://static.photos/people/1024x576/4" alt="Portrait 2">
44
+ <div class="overlay">
45
+ <p class="title">Séries Personnelles</p>
 
46
  </div>
47
  </div>
48
  </section>
49
 
50
+ <!-- About Section -->
51
+ <section class="about" id="about">
52
+ <div class="about-content">
53
+ <h2>À propos</h2>
54
+ <p>Photographe basée à Paris, je capture des moments d'authenticité et d'émotion à travers mon travail. Mon approche mélange sensibilité artistique et technique rigoureuse.</p>
55
+ <a href="#contact" class="cta-button">Travaillons ensemble</a>
56
+ </div>
57
+ <div class="about-image">
58
+ <img src="http://static.photos/people/640x360/5" alt="Lucie Martin">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  </div>
60
  </section>
61
 
62
+ <!-- Featured Project -->
63
+ <section class="featured-project">
64
+ <div class="project-content">
65
+ <h2>Projet: Lumière Nocturne</h2>
66
+ <p>Une exploration des nuances de lumière en milieu urbain la nuit.</p>
67
+ <a href="/series/lumiere-nocturne" class="cta-button">Voir la série</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  </div>
69
  </section>
70
+
71
+ <!-- Contact Section -->
72
+ <section class="contact" id="contact">
73
+ <h2>Me contacter</h2>
74
+ <form class="contact-form">
75
+ <input type="text" placeholder="Votre nom">
76
+ <input type="email" placeholder="Votre email">
77
+ <textarea placeholder="Votre message"></textarea>
78
+ <button type="submit" class="cta-button">Envoyer</button>
79
+ </form>
80
+ </section>
81
  </main>
82
 
83
  <custom-footer></custom-footer>
84
 
85
+ <script src="components/navbar.js"></script>
86
  <script src="components/footer.js"></script>
87
  <script src="script.js"></script>
 
 
 
 
88
  </body>
89
  </html>
script.js CHANGED
@@ -1,32 +1,41 @@
1
  document.addEventListener('DOMContentLoaded', function() {
2
- // Smooth scrolling for anchor links
3
- document.querySelectorAll('a[href^="#"]').forEach(anchor => {
4
- anchor.addEventListener('click', function(e) {
5
- e.preventDefault();
6
-
7
- const target = document.querySelector(this.getAttribute('href'));
8
- if (target) {
9
- window.scrollTo({
10
- top: target.offsetTop - 100,
11
- behavior: 'smooth'
12
- });
13
- }
14
- });
15
  });
 
16
 
17
- // Scroll reveal animation
18
- const revealElements = document.querySelectorAll('[data-reveal]');
19
-
20
- const observer = new IntersectionObserver((entries) => {
21
- entries.forEach(entry => {
22
- if (entry.isIntersecting) {
23
- entry.target.classList.add('animate-fadeIn');
24
- observer.unobserve(entry.target);
25
- }
26
- });
27
- }, {
28
- threshold: 0.1
29
  });
 
30
 
31
- revealElements.forEach(el => observer.observe(el));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  });
 
1
  document.addEventListener('DOMContentLoaded', function() {
2
+ // Smooth scrolling
3
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
4
+ anchor.addEventListener('click', function(e) {
5
+ e.preventDefault();
6
+ document.querySelector(this.getAttribute('href')).scrollIntoView({
7
+ behavior: 'smooth'
8
+ });
 
 
 
 
 
 
9
  });
10
+ });
11
 
12
+ // Lightbox for gallery items
13
+ const galleryItems = document.querySelectorAll('.grid-item');
14
+
15
+ galleryItems.forEach(item => {
16
+ item.addEventListener('click', function() {
17
+ // In a real implementation, this would open a lightbox
18
+ console.log('Opening lightbox for item');
 
 
 
 
 
19
  });
20
+ });
21
 
22
+ // Navbar scroll effect
23
+ window.addEventListener('scroll', function() {
24
+ const navbar = document.querySelector('custom-navbar').shadowRoot.querySelector('nav');
25
+ if (window.scrollY > 50) {
26
+ navbar.style.background = 'rgba(0,0,0,0.9)';
27
+ } else {
28
+ navbar.style.background = 'rgba(0,0,0,0.5)';
29
+ }
30
+ });
31
+
32
+ // Form submission
33
+ const contactForm = document.querySelector('.contact-form');
34
+ if (contactForm) {
35
+ contactForm.addEventListener('submit', function(e) {
36
+ e.preventDefault();
37
+ alert('Merci pour votre message. Je vous répondrai bientôt!');
38
+ this.reset();
39
+ });
40
+ }
41
  });
style.css CHANGED
@@ -1,37 +1,184 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');
2
-
3
  body {
4
- font-family: 'Montserrat', sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  }
6
 
7
- /* Animations */
8
- @keyframes float {
9
- 0%, 100% {
10
- transform: translateY(0);
11
- }
12
- 50% {
13
- transform: translateY(-15px);
14
- }
15
  }
16
 
17
- .floating {
18
- animation: float 6s ease-in-out infinite;
 
 
 
 
 
19
  }
20
 
21
- /* Custom scrollbar */
22
- ::-webkit-scrollbar {
23
- width: 8px;
24
  }
25
 
26
- ::-webkit-scrollbar-track {
27
- background: #f1f1f1;
 
 
 
 
28
  }
29
 
30
- ::-webkit-scrollbar-thumb {
31
- background: #FF6B6B;
32
- border-radius: 10px;
33
  }
34
 
35
- ::-webkit-scrollbar-thumb:hover {
36
- background: #e05555;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  }
 
1
+ /* Base Styles */
 
2
  body {
3
+ margin: 0;
4
+ padding: 0;
5
+ font-family: 'aktiv-grotesk', sans-serif;
6
+ color: #333;
7
+ line-height: 1.6;
8
+ }
9
+
10
+ /* Portfolio Grid */
11
+ .portfolio-grid {
12
+ display: grid;
13
+ grid-template-rows: auto auto auto auto;
14
+ }
15
+
16
+ /* Hero Section */
17
+ .hero {
18
+ height: 100vh;
19
+ background: #000;
20
+ color: white;
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ text-align: center;
25
+ position: relative;
26
+ }
27
+
28
+ .hero::before {
29
+ content: '';
30
+ position: absolute;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background: linear-gradient(to bottom, rgba(0,0,0,0.3), rgba(0,0,0,0.7));
36
+ }
37
+
38
+ .hero-content {
39
+ z-index: 1;
40
+ }
41
+
42
+ .hero h1 {
43
+ font-size: 4rem;
44
+ font-weight: 300;
45
+ letter-spacing: 5px;
46
+ margin-bottom: 1rem;
47
+ }
48
+
49
+ .subtitle {
50
+ font-size: 1.2rem;
51
+ letter-spacing: 3px;
52
+ opacity: 0.8;
53
+ }
54
+
55
+ /* Gallery Grid */
56
+ .gallery {
57
+ display: grid;
58
+ grid-template-columns: repeat(2, 1fr);
59
+ grid-gap: 0;
60
+ }
61
+
62
+ .grid-item {
63
+ position: relative;
64
+ aspect-ratio: 1/1;
65
+ overflow: hidden;
66
+ }
67
+
68
+ .grid-item img {
69
+ width: 100%;
70
+ height: 100%;
71
+ object-fit: cover;
72
+ transition: transform 0.5s ease;
73
  }
74
 
75
+ .grid-item:hover img {
76
+ transform: scale(1.05);
 
 
 
 
 
 
77
  }
78
 
79
+ .overlay {
80
+ position: absolute;
81
+ bottom: 2rem;
82
+ left: 2rem;
83
+ color: white;
84
+ opacity: 0;
85
+ transition: opacity 0.3s ease;
86
  }
87
 
88
+ .grid-item:hover .overlay {
89
+ opacity: 1;
 
90
  }
91
 
92
+ /* About Section */
93
+ .about {
94
+ display: grid;
95
+ grid-template-columns: 1fr 1fr;
96
+ min-height: 80vh;
97
+ align-items: center;
98
  }
99
 
100
+ .about-content {
101
+ padding: 4rem;
 
102
  }
103
 
104
+ .about-image {
105
+ height: 100%;
106
+ }
107
+
108
+ .about-image img {
109
+ width: 100%;
110
+ height: 100%;
111
+ object-fit: cover;
112
+ }
113
+
114
+ /* Featured Project */
115
+ .featured-project {
116
+ height: 100vh;
117
+ background: #000;
118
+ color: white;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ text-align: center;
123
+ padding: 0 20%;
124
+ background-image: url('http://static.photos/black/1200x630/1');
125
+ background-size: cover;
126
+ background-position: center;
127
+ position: relative;
128
+ }
129
+
130
+ .featured-project::before {
131
+ content: '';
132
+ position: absolute;
133
+ top: 0;
134
+ left: 0;
135
+ right: 0;
136
+ bottom: 0;
137
+ background: rgba(0,0,0,0.5);
138
+ }
139
+
140
+ .featured-project .project-content {
141
+ z-index: 1;
142
+ }
143
+
144
+ /* Contact Section */
145
+ .contact {
146
+ padding: 8rem 4rem;
147
+ background: #f9f9f9;
148
+ text-align: center;
149
+ }
150
+
151
+ .contact-form {
152
+ max-width: 500px;
153
+ margin: 2rem auto 0;
154
+ display: flex;
155
+ flex-direction: column;
156
+ gap: 1rem;
157
+ }
158
+
159
+ /* Buttons */
160
+ .cta-button {
161
+ display: inline-block;
162
+ padding: 1rem 2rem;
163
+ background: transparent;
164
+ color: #000;
165
+ border: 1px solid #000;
166
+ text-decoration: none;
167
+ transition: all 0.3s ease;
168
+ }
169
+
170
+ .cta-button:hover {
171
+ background: #000;
172
+ color: white;
173
+ }
174
+
175
+ /* Responsive */
176
+ @media (max-width: 768px) {
177
+ .gallery {
178
+ grid-template-columns: 1fr;
179
+ }
180
+
181
+ .about {
182
+ grid-template-columns: 1fr;
183
+ }
184
  }