cloudflare
tcp/443 tcp/8443
The following URL (usually /.git/config) is publicly accessible and is leaking source code and repository configuration.
Severity: medium
Fingerprint: 2580fa947178c88602b1737db148c044baa2727ab8135b5bbc521bbb0cc5ef9d
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true [lfs] repositoryformatversion = 0 [remote "origin"] url = https://github.com/N3luj861/Portefolios_.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin merge = refs/heads/main
The following URL (usually /.git/config) is publicly accessible and is leaking source code and repository configuration.
Severity: medium
Fingerprint: 2580fa947178c88602b1737db148c044baa2727ab8135b5bbc521bbb0cc5ef9d
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true [lfs] repositoryformatversion = 0 [remote "origin"] url = https://github.com/N3luj861/Portefolios_.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin merge = refs/heads/main
Open service 172.66.45.26:443 · n3luj.pages.dev
2026-01-09 19:46
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 19:46:53 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 45868
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "95d1e86cf7587e7e0949b988797e6534"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=egHbwRqcaFLaFznO4nL8XHxduuEVkbBkbsgXbxyBRrDGVaBe6ZqRpmLstL8oWltqnOztI5G5%2Fl3O6ghMl%2B09BY%2FB5t%2BwgaEFhJtlxpeHcQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bb6717dff9adca8-FRA
alt-svc: h3=":443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
width: 100%;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
padding-bottom: 5px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
-webkit-tap-highlight-color: transparent;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count:
Open service 172.66.46.230:8443 · n3luj.pages.dev
2026-01-09 15:36
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 15:36:20 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 45868
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "95d1e86cf7587e7e0949b988797e6534"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=glahnsuLhOXKC5I8kIQ0m9kC45oSpuWz7icWRsFOY8ik7bGUYlsAblpcsOrM%2Fe4WIVedr4OD5y1BfFPW4GZDePFTlwjtt5qVTypgDchPEg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bb502777d40c6ec-SJC
alt-svc: h3=":8443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
width: 100%;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
padding-bottom: 5px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
-webkit-tap-highlight-color: transparent;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count:
Open service 172.66.45.26:443 · n3luj.pages.dev
2026-01-02 18:13
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 18:13:55 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 45868
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "95d1e86cf7587e7e0949b988797e6534"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=LpFhRF%2BnGRDF0E7yDZXxghceBc3wM2jqASum0UOR7xpHVqniZE6yoMR3cad3%2BipKSgQiT220rdgsBtlzVxymMDewSG4kApdAieN8Ac6S1g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7c3bb01d9d4dc0-FRA
alt-svc: h3=":443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
width: 100%;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
padding-bottom: 5px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
-webkit-tap-highlight-color: transparent;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count:
Open service 172.66.46.230:8443 · n3luj.pages.dev
2026-01-02 12:01
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 12:01:49 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 45868
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "95d1e86cf7587e7e0949b988797e6534"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9NAEg%2FDXos5Er1FpUbQ01OQN3W7%2FWBuhuYCxcxm7R15ZtZ%2FPdu%2BjCal%2FKNly%2FHppqy4bNbHCXfTOZBqZHmJkVwXVmYGuZ6%2F6GQX5z2YSTQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7a1a9f1a75972f-FRA
alt-svc: h3=":8443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
width: 100%;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
padding-bottom: 5px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
-webkit-tap-highlight-color: transparent;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count:
Open service 172.66.45.26:443 · n3luj.pages.dev
2025-12-23 00:09
HTTP/1.1 200 OK
Date: Tue, 23 Dec 2025 00:09:49 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 42205
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "0e133d71ba4dcde29229cd221996d972"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0N8aEvfV8vrVMxjphKfP7BlaWCnYdfLAALROAH77L%2BlniWkjqIxtcleFv97vliHvpnDr4G%2BB7Fe0TZcdroQi2UXdBWvS7EaWxAsQL7jhFw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b23a1e5ed1f2bd9-FRA
alt-svc: h3=":443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count: 4; column-gap: var(--gap);
position: relative; z-index: 1;
}
.photo-card {
Open service 172.66.46.230:8443 · n3luj.pages.dev
2025-12-22 19:51
HTTP/1.1 200 OK
Date: Mon, 22 Dec 2025 19:51:05 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 42205
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "0e133d71ba4dcde29229cd221996d972"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=nz1ctYJ3Ln%2BoJLahrwmBuStUU1zLPRA89Cw7nCWE13cN0d2AR96Uy1QwAdYpNL2dV1D3hdasBe3ci%2BgCwuFqsaI%2B%2Bo00hrY4%2BN%2F08QX5Hg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b2226e53e287e8f-AMS
alt-svc: h3=":8443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count: 4; column-gap: var(--gap);
position: relative; z-index: 1;
}
.photo-card {
Open service 172.66.46.230:8443 · n3luj.pages.dev
2025-12-21 05:09
HTTP/1.1 200 OK
Date: Sun, 21 Dec 2025 05:09:31 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 42205
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "0e133d71ba4dcde29229cd221996d972"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=obDJBHEhEr5NN9Ci6JtFUhMrA5jnHsMAeGRF8Hhtj%2FuLTNC0NOt7dGqfmTEnaRf3OxYKPp5ptNo%2BKqTHQqIVKPBIQicB%2BpENpRiQhdKc5Q%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b14de275d40de99-EWR
alt-svc: h3=":8443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count: 4; column-gap: var(--gap);
position: relative; z-index: 1;
}
.photo-card {
Open service 172.66.45.26:443 · n3luj.pages.dev
2025-12-21 01:05
HTTP/1.1 200 OK
Date: Sun, 21 Dec 2025 01:05:19 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 42205
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "0e133d71ba4dcde29229cd221996d972"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=09S7SL9sqiBfnwqKu%2FI%2Fa9IB6oVlhOT3sCASQAtTY6s3ZEPr4%2B2LhqTJ7iqkWNbFi%2BgK0pJtMLpEfiqZrposgB9lddEyXb67Ceg5o1SOwQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b13786fdbbf2dc1-AMS
alt-svc: h3=":443"; ma=86400
Page title: N3luj.jpg - Portfolio Photographe
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio Photographe</title>
<meta name="description" content="Portfolio de N3luj, photographe indépendant. Concerts, paysages, architecture et séries artistiques.">
<meta name="author" content="N3luj">
<meta property="og:type" content="website">
<meta property="og:title" content="N3luj.jpg - Portfolio">
<meta property="og:description" content="Découvrez mon univers photographique.">
<meta property="og:image" content="PHOTO/ULYSSE.jpg">
<link rel="icon" type="image/png" href="favicon.png">
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
html { scroll-behavior: smooth; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
user-select: none; -webkit-user-select: none;
overflow-x: hidden;
}
/* EFFET GRAIN (Z-Index: 9998) */
.grain-overlay {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none; z-index: 9998; opacity: 0.4;
}
/* SCROLLBAR DARK MODE */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #1a1a1a; }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #666; }
::selection { background: #fff; color: #000; }
/* --- 2. HEADER --- */
header {
text-align: center; padding: 60px 20px 20px;
max-width: 800px; margin: 0 auto;
position: relative; z-index: 1;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 20px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* FILTRES */
.filter-container {
display: flex; justify-content: center; flex-wrap: wrap;
gap: 10px; margin-bottom: 40px;
}
.filter-btn {
background: transparent; border: 1px solid #444; color: #888;
padding: 8px 16px; border-radius: 20px; cursor: pointer;
font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px;
transition: all 0.3s ease; white-space: nowrap;
}
.filter-btn:hover, .filter-btn.active {
background: #fff; color: #000; border-color: #fff;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count: 4; column-gap: var(--gap);
position: relative; z-index: 1;
}
.photo-card {
Open service 172.66.46.230:8443 · n3luj.pages.dev
2025-12-19 08:51
HTTP/1.1 200 OK
Date: Fri, 19 Dec 2025 08:51:20 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 31995
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d3ba332c6abae4478465e42ba0e55754"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=xnPztDu2xq6DGBKkpFw9UWWFN1U8nj%2FzZXNJfrwfSdLl%2Fn0btGQgUmqS3FDQLBBGl841JdwKFHTpZzNor45Lsd8qWprn0lbn8wmDrb8yRQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b05a852cc734219-EWR
alt-svc: h3=":8443"; ma=86400
Page title: N3luj.jpg - Portfolio
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio</title>
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
/* Protection : Empêche la sélection */
user-select: none; -webkit-user-select: none;
}
header {
text-align: center; padding: 60px 20px 40px;
max-width: 800px; margin: 0 auto;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 10px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count: 4; column-gap: var(--gap);
}
.photo-card {
break-inside: avoid; margin-bottom: var(--gap);
background-color: var(--card-bg); border-radius: 8px;
overflow: hidden; position: relative;
transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer;
min-height: 200px; background: #2a2a2a;
}
/* --- PROTECTION : BOUCLIER INVISIBLE --- */
/* Empêche de toucher l'image directement avec "Inspecter" */
.photo-card::after {
content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
z-index: 2; /* Au-dessus de l'image */
background: transparent;
}
/* LOADER */
.photo-card::before {
content: ""; position: absolute; top: 50%; left: 50%;
width: 30px; height: 30px; margin: -15px 0 0 -15px;
border: 3px solid rgba(255,255,255,0.1);
border-top: 3px solid #fff; border-radius: 50%;
animation: spin 1s linear infinite; z-index: 1;
}
.photo-card.loaded::before { display: none; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.photo-card img {
width: 100%; height: auto; display: block;
opacity: 0; transition: opacity 0.5s ease, filter 0.3s;
background-color: #222;
pointer-events: none; /* Désactive les interactions souris sur l'img */
}
.photo-card.loaded img { opacity: 1; filter: brightness(0.9); }
.photo-card:hover img { filter: brightness(1.1); }
.caption { padding: 15px; position: relative; z-index: 3; /* Le texte reste cliquable */ }
.caption h3 {
font-size: 0.9rem; font-weight: 600; margin-bottom: 4px;
text-transform: uppercase; color: #fff;
}
.caption p {
font-size: 0.75rem; color: var(--accent-color);
font-family: 'Courier New', Courier, monospace;
letter-spacing: -0.5px; min-height: 1.2em;
}
/* --- SECTION À PROPOS --- */
.about-section {
background-color: #151515; padding: 60px 20px;
Open service 172.66.45.26:443 · n3luj.pages.dev
2025-12-19 05:51
HTTP/1.1 200 OK
Date: Fri, 19 Dec 2025 05:51:46 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 31995
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
ETag: "d3ba332c6abae4478465e42ba0e55754"
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OD2%2B7O1fR97ORpABVNp6HNk9ta5XxuzU9l%2B6%2BAiqEZU3zG5%2F1hKiJsroYwsDEU8%2BaweQZCK%2BvhFzemGaqfdh0wd%2FTAL3I%2BNipVRA8Pn15A%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b04a14d886efd2e-SIN
alt-svc: h3=":443"; ma=86400
Page title: N3luj.jpg - Portfolio
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>N3luj.jpg - Portfolio</title>
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
<style>
/* --- 1. CONFIGURATION --- */
@font-face {
font-family: 'BluePrinted';
src: url('POLICE/BluePrinted.ttf') format('truetype');
font-weight: normal; font-style: normal; font-display: swap;
}
:root {
--bg-color: #1a1a1a;
--card-bg: #222;
--text-color: #e0e0e0;
--accent-color: #888;
--gap: 20px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.6;
display: flex; flex-direction: column; min-height: 100vh;
/* Protection : Empêche la sélection */
user-select: none; -webkit-user-select: none;
}
header {
text-align: center; padding: 60px 20px 40px;
max-width: 800px; margin: 0 auto;
}
h1 {
font-family: 'BluePrinted', sans-serif;
font-weight: normal;
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: 2px; margin-bottom: 10px;
text-transform: uppercase; color: #fff; line-height: 1.1;
}
/* --- 3. GRILLE MASONRY --- */
.gallery-container {
max-width: 1800px; width: 100%; margin: 0 auto; padding: 20px; flex: 1;
column-count: 4; column-gap: var(--gap);
}
.photo-card {
break-inside: avoid; margin-bottom: var(--gap);
background-color: var(--card-bg); border-radius: 8px;
overflow: hidden; position: relative;
transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer;
min-height: 200px; background: #2a2a2a;
}
/* --- PROTECTION : BOUCLIER INVISIBLE --- */
/* Empêche de toucher l'image directement avec "Inspecter" */
.photo-card::after {
content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
z-index: 2; /* Au-dessus de l'image */
background: transparent;
}
/* LOADER */
.photo-card::before {
content: ""; position: absolute; top: 50%; left: 50%;
width: 30px; height: 30px; margin: -15px 0 0 -15px;
border: 3px solid rgba(255,255,255,0.1);
border-top: 3px solid #fff; border-radius: 50%;
animation: spin 1s linear infinite; z-index: 1;
}
.photo-card.loaded::before { display: none; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.photo-card img {
width: 100%; height: auto; display: block;
opacity: 0; transition: opacity 0.5s ease, filter 0.3s;
background-color: #222;
pointer-events: none; /* Désactive les interactions souris sur l'img */
}
.photo-card.loaded img { opacity: 1; filter: brightness(0.9); }
.photo-card:hover img { filter: brightness(1.1); }
.caption { padding: 15px; position: relative; z-index: 3; /* Le texte reste cliquable */ }
.caption h3 {
font-size: 0.9rem; font-weight: 600; margin-bottom: 4px;
text-transform: uppercase; color: #fff;
}
.caption p {
font-size: 0.75rem; color: var(--accent-color);
font-family: 'Courier New', Courier, monospace;
letter-spacing: -0.5px; min-height: 1.2em;
}
/* --- SECTION À PROPOS --- */
.about-section {
background-color: #151515; padding: 60px 20px;