1536 lines
27 KiB
CSS
1536 lines
27 KiB
CSS
:root {
|
|
--background: #ffffff;
|
|
--text: #000000;
|
|
--card-bg: #ffffff;
|
|
--accent: #007AFF;
|
|
--shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
|
|
--border: rgba(0, 0, 0, 0.1);
|
|
--nav-bg: rgba(255, 255, 255, 0.8);
|
|
}
|
|
|
|
[data-theme="dark"] {
|
|
--background: #0d0d0d;
|
|
--text: #ffffff;
|
|
--card-bg: #1a1a1a;
|
|
--accent: #0A84FF;
|
|
--shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.7);
|
|
--border: rgba(255, 255, 255, 0.1);
|
|
--nav-bg: rgba(13, 13, 13, 0.8);
|
|
}
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--background);
|
|
color: var(--text);
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
line-height: 1.6;
|
|
transition: background-color 0.3s ease, color 0.3s ease;
|
|
}
|
|
|
|
/* Header Styles */
|
|
header {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 1000;
|
|
backdrop-filter: blur(10px);
|
|
-webkit-backdrop-filter: blur(10px);
|
|
background: var(--nav-bg);
|
|
}
|
|
|
|
nav {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 1rem 2rem;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.logo {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
text-decoration: none;
|
|
color: var(--text);
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
|
|
/* Theme Toggle Button */
|
|
.theme-toggle {
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
padding: 0.5rem;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.theme-toggle:hover {
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.theme-toggle svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: var(--text);
|
|
}
|
|
|
|
/* Bento Grid Styles */
|
|
.bento-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(12, 1fr);
|
|
gap: 1.5rem;
|
|
padding: 1.5rem;
|
|
max-width: 1400px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.bento-item {
|
|
position: relative;
|
|
border-radius: 24px;
|
|
overflow: hidden;
|
|
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
border: 1px solid var(--border);
|
|
}
|
|
|
|
/* Variations de tailles */
|
|
.bento-item.size-1 {
|
|
grid-column: span 3;
|
|
grid-row: span 1;
|
|
aspect-ratio: 1;
|
|
}
|
|
|
|
.bento-item.size-2 {
|
|
grid-column: span 6;
|
|
grid-row: span 1;
|
|
aspect-ratio: 2/1;
|
|
}
|
|
|
|
.bento-item.size-3 {
|
|
grid-column: span 6;
|
|
grid-row: span 2;
|
|
aspect-ratio: 1;
|
|
}
|
|
|
|
.bento-item.size-4 {
|
|
grid-column: span 9;
|
|
grid-row: span 1;
|
|
aspect-ratio: 3/1;
|
|
}
|
|
|
|
.bento-item.size-5 {
|
|
grid-column: span 4;
|
|
grid-row: span 2;
|
|
aspect-ratio: 0.8;
|
|
}
|
|
|
|
.bento-link {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-end;
|
|
height: 100%;
|
|
text-decoration: none;
|
|
color: var(--text);
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.bento-image {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 0;
|
|
}
|
|
|
|
.bento-image::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.1) 100%);
|
|
}
|
|
|
|
.bento-image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.bento-content {
|
|
position: relative;
|
|
z-index: 2;
|
|
padding: 2rem;
|
|
color: white;
|
|
}
|
|
|
|
.bento-content h2 {
|
|
font-size: 2rem;
|
|
margin-bottom: 1rem;
|
|
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
.bento-content p {
|
|
font-size: 1rem;
|
|
opacity: 0.9;
|
|
margin-bottom: 1rem;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 3;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/* CV Button Styles */
|
|
.cv-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 1rem 2rem;
|
|
background: var(--accent);
|
|
color: white;
|
|
text-decoration: none;
|
|
border-radius: 30px;
|
|
font-weight: 500;
|
|
transition: all 0.3s ease;
|
|
margin-top: 2rem;
|
|
box-shadow: 0 10px 20px -10px var(--accent);
|
|
}
|
|
|
|
.cv-button svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.cv-button:hover {
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 15px 25px -10px var(--accent);
|
|
}
|
|
|
|
/* Post Meta Styles */
|
|
.post-meta {
|
|
display: flex;
|
|
gap: 1rem;
|
|
margin-bottom: 1rem;
|
|
font-size: 0.9rem;
|
|
color: rgba(255, 255, 255, 0.8);
|
|
}
|
|
|
|
.category {
|
|
background: var(--accent);
|
|
padding: 0.2rem 0.8rem;
|
|
border-radius: 15px;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
/* Hover Effects */
|
|
.bento-item:hover {
|
|
transform: translateY(-8px) scale(1.02);
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
|
|
border-color: var(--accent);
|
|
}
|
|
|
|
.bento-item:hover .bento-image img {
|
|
transform: scale(1.1) rotate(-2deg);
|
|
}
|
|
|
|
.bento-item:hover .bento-content h2 {
|
|
transform: translateX(10px);
|
|
color: var(--accent);
|
|
}
|
|
|
|
.bento-item::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(
|
|
45deg,
|
|
transparent 0%,
|
|
rgba(var(--accent-rgb), 0.1) 100%
|
|
);
|
|
opacity: 0;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.bento-item:hover::after {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Animation d'apparition */
|
|
@keyframes bentoAppear {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
.bento-item {
|
|
animation: bentoAppear 0.5s ease-out forwards;
|
|
animation-delay: calc(var(--order) * 0.1s);
|
|
opacity: 0;
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 1200px) {
|
|
.bento-item.size-4 {
|
|
grid-column: span 12;
|
|
}
|
|
.bento-item.size-3 {
|
|
grid-column: span 8;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.bento-grid {
|
|
grid-template-columns: repeat(6, 1fr);
|
|
gap: 1rem;
|
|
padding: 1rem;
|
|
}
|
|
|
|
.bento-item.size-1,
|
|
.bento-item.size-2,
|
|
.bento-item.size-3,
|
|
.bento-item.size-4,
|
|
.bento-item.size-5 {
|
|
grid-column: span 6;
|
|
grid-row: span 1;
|
|
aspect-ratio: 16/9;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.bento-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Animations */
|
|
@keyframes fadeIn {
|
|
from { opacity: 0; transform: translateY(20px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
.bento-item {
|
|
animation: fadeIn 0.5s ease forwards;
|
|
}
|
|
|
|
/* Hero Container */
|
|
.hero-container {
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
padding: 2rem;
|
|
position: relative;
|
|
}
|
|
|
|
.hero-section {
|
|
text-align: center;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Scroll Indicator */
|
|
.scroll-indicator {
|
|
position: absolute;
|
|
bottom: 2rem;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.chevron {
|
|
width: 28px;
|
|
height: 8px;
|
|
opacity: 0;
|
|
transform: scale(0.3);
|
|
animation: move-chevron 3s ease-out infinite;
|
|
}
|
|
|
|
.chevron:first-child {
|
|
animation: move-chevron 3s ease-out 1s infinite;
|
|
}
|
|
|
|
.chevron:nth-child(2) {
|
|
animation: move-chevron 3s ease-out 2s infinite;
|
|
}
|
|
|
|
.chevron:before,
|
|
.chevron:after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
height: 100%;
|
|
width: 50%;
|
|
background: var(--accent);
|
|
}
|
|
|
|
.chevron:before {
|
|
left: 0;
|
|
transform: skewY(30deg);
|
|
}
|
|
|
|
.chevron:after {
|
|
right: 0;
|
|
width: 50%;
|
|
transform: skewY(-30deg);
|
|
}
|
|
|
|
@keyframes move-chevron {
|
|
25% {
|
|
opacity: 1;
|
|
transform: translateY(9px) scale(0.8);
|
|
}
|
|
33% {
|
|
opacity: 1;
|
|
transform: translateY(18px) scale(0.8);
|
|
}
|
|
67% {
|
|
opacity: 1;
|
|
transform: translateY(18px) scale(0.8);
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
transform: translateY(27px) scale(0.8);
|
|
}
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 768px) {
|
|
.hero-container {
|
|
padding: 1rem;
|
|
min-height: calc(100vh - 60px);
|
|
}
|
|
|
|
.scroll-indicator {
|
|
bottom: 1rem;
|
|
}
|
|
|
|
.chevron {
|
|
width: 24px;
|
|
height: 6px;
|
|
}
|
|
}
|
|
|
|
@media (max-height: 700px) {
|
|
.hero-container {
|
|
min-height: auto;
|
|
padding-top: 2rem;
|
|
padding-bottom: 4rem;
|
|
}
|
|
}
|
|
|
|
/* Hero Section Styles */
|
|
.profile-video {
|
|
position: relative;
|
|
margin-bottom: 2rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.profile-video video {
|
|
width: 300px;
|
|
height: 300px;
|
|
object-fit: cover;
|
|
margin-bottom: -20px;
|
|
}
|
|
|
|
.intro-text {
|
|
font-size: 1.5rem;
|
|
font-weight: 500;
|
|
color: var(--text);
|
|
padding: 0.5rem 1.5rem;
|
|
border-radius: 20px;
|
|
background: var(--card-bg);
|
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.intro-text .highlight {
|
|
color: var(--accent);
|
|
font-weight: 600;
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
padding: 0 0.2rem;
|
|
}
|
|
|
|
.waving-hand {
|
|
display: inline-block;
|
|
font-size: 1.6rem;
|
|
margin: 0 0.2rem;
|
|
animation: wave 2.5s infinite;
|
|
transform-origin: 70% 70%;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.title-highlight {
|
|
font-size: 2.8rem;
|
|
line-height: 1.3;
|
|
margin: 2rem 0;
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.roles {
|
|
font-size: 1.4rem;
|
|
margin: 2rem 0;
|
|
color: var(--text);
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.hero-section {
|
|
padding: 2rem 1rem;
|
|
}
|
|
|
|
.profile-video video {
|
|
width: 180px;
|
|
height: 180px;
|
|
}
|
|
|
|
.intro-text {
|
|
font-size: 1.2rem;
|
|
padding: 0.4rem 1rem;
|
|
}
|
|
|
|
.title-highlight {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.roles {
|
|
font-size: 1.2rem;
|
|
}
|
|
}
|
|
|
|
/* Footer Styles - sans la bordure */
|
|
.footer {
|
|
padding: 1.5rem;
|
|
text-align: center;
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.footer p {
|
|
color: #888; /* Gris pour le texte */
|
|
font-size: 0.9rem; /* Taille de texte légèrement réduite */
|
|
margin: 0;
|
|
}
|
|
|
|
.footer .highlight {
|
|
color: var(--accent); /* Utilise la couleur d'accent pour le nom */
|
|
font-weight: 500;
|
|
transition: color 0.3s ease;
|
|
}
|
|
|
|
.footer .highlight:hover {
|
|
color: var(--text); /* Change la couleur au survol */
|
|
}
|
|
|
|
.code {
|
|
font-family: monospace;
|
|
color: var(--accent);
|
|
}
|
|
|
|
.heart {
|
|
color: #ff3366;
|
|
display: inline-block;
|
|
animation: pulse 1.5s infinite;
|
|
}
|
|
|
|
/* Animations */
|
|
@keyframes pulse {
|
|
0% { transform: scale(1); }
|
|
50% { transform: scale(1.1); }
|
|
100% { transform: scale(1); }
|
|
}
|
|
|
|
/* Highlight effect */
|
|
.highlight {
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
font-weight: 700;
|
|
}
|
|
|
|
/* Companies Section */
|
|
.companies-section {
|
|
padding: 4rem 2rem;
|
|
text-align: center;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.companies-section h2 {
|
|
font-size: 1.5rem;
|
|
margin-bottom: 2rem;
|
|
color: var(--text);
|
|
position: relative;
|
|
display: inline-block;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.companies-section h2::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: -10px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 50%;
|
|
height: 3px;
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.company-logos {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 2rem;
|
|
margin: 0 auto;
|
|
max-width: 900px;
|
|
}
|
|
|
|
.logo-item {
|
|
padding: 2rem;
|
|
transition: all 0.3s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: none;
|
|
box-shadow: none;
|
|
border: none;
|
|
}
|
|
|
|
.logo-item:hover {
|
|
transform: translateY(-5px);
|
|
box-shadow: none;
|
|
border: none;
|
|
}
|
|
|
|
.logo-item img {
|
|
max-width: 120px;
|
|
height: auto;
|
|
filter: grayscale(100%);
|
|
opacity: 0.7;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.logo-item:hover img {
|
|
filter: grayscale(0%);
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Responsive Design for Companies Section */
|
|
@media (max-width: 768px) {
|
|
.company-logos {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 1rem;
|
|
}
|
|
|
|
.companies-section {
|
|
padding: 2rem 1rem;
|
|
}
|
|
|
|
.companies-section h2 {
|
|
font-size: 1.2rem;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.logo-item img {
|
|
max-width: 80px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.company-logos {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* Styles pour la barre de recherche et les icônes */
|
|
.nav-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.search-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
background: var(--card-bg);
|
|
border-radius: 8px;
|
|
padding: 0.5rem 1rem;
|
|
width: 200px;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.search-bar:focus-within {
|
|
width: 300px;
|
|
box-shadow: 0 0 0 2px var(--accent);
|
|
}
|
|
|
|
.search-bar input {
|
|
border: none;
|
|
background: none;
|
|
outline: none;
|
|
color: var(--text);
|
|
width: 100%;
|
|
font-size: 0.9rem;
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
.search-bar .search-icon {
|
|
width: 16px;
|
|
height: 16px;
|
|
fill: var(--text);
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.nav-icons {
|
|
display: flex;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.nav-icon {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: var(--text);
|
|
opacity: 0.8;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.nav-icon:hover {
|
|
opacity: 1;
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
/* Styles pour le défilement des logos */
|
|
.logo-scroll {
|
|
width: 100%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
padding: 2rem 0;
|
|
}
|
|
|
|
.logo-track {
|
|
display: flex;
|
|
animation: scroll 30s linear infinite;
|
|
}
|
|
|
|
.logo-container {
|
|
display: flex;
|
|
gap: 4rem;
|
|
padding: 0 2rem;
|
|
}
|
|
|
|
.logo-container img {
|
|
height: 40px;
|
|
width: auto;
|
|
filter: grayscale(100%);
|
|
opacity: 0.7;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.logo-container img:hover {
|
|
filter: grayscale(0%);
|
|
opacity: 1;
|
|
}
|
|
|
|
@keyframes scroll {
|
|
0% {
|
|
transform: translateX(0);
|
|
}
|
|
100% {
|
|
transform: translateX(-50%);
|
|
}
|
|
}
|
|
|
|
/* Media Queries */
|
|
@media (max-width: 768px) {
|
|
.search-bar {
|
|
display: none;
|
|
}
|
|
|
|
.nav-icons {
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.nav-icon {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
}
|
|
|
|
/* Styles pour le menu mobile */
|
|
.mobile-menu-toggle {
|
|
display: none;
|
|
background: none;
|
|
border: none;
|
|
padding: 0.5rem;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.mobile-menu-toggle svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: var(--text);
|
|
}
|
|
|
|
.mobile-menu {
|
|
display: none;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: var(--background);
|
|
z-index: 1000;
|
|
padding: 2rem;
|
|
transform: translateX(100%);
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.mobile-menu.active {
|
|
transform: translateX(0);
|
|
}
|
|
|
|
.mobile-menu-header {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
margin-bottom: 2rem;
|
|
position: relative;
|
|
}
|
|
|
|
.mobile-menu-close {
|
|
position: absolute;
|
|
top: -1rem;
|
|
right: -1rem;
|
|
background: none;
|
|
border: none;
|
|
padding: 0.5rem;
|
|
cursor: pointer;
|
|
z-index: 1001;
|
|
}
|
|
|
|
.mobile-menu-close svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: var(--text);
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.mobile-menu-close:hover svg {
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
.mobile-menu-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.mobile-menu-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
padding: 1rem;
|
|
text-decoration: none;
|
|
color: var(--text);
|
|
border-radius: 8px;
|
|
transition: background-color 0.3s ease;
|
|
}
|
|
|
|
.mobile-menu-item:hover {
|
|
background: var(--card-bg);
|
|
}
|
|
|
|
.mobile-menu-item svg {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: var(--text);
|
|
}
|
|
|
|
/* Media Queries */
|
|
@media (max-width: 768px) {
|
|
.desktop-nav {
|
|
display: none;
|
|
}
|
|
|
|
.mobile-menu-toggle {
|
|
display: block;
|
|
}
|
|
|
|
.mobile-menu {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
/* Blog Grid Styles */
|
|
.blog-container {
|
|
max-width: 1400px;
|
|
margin: 0 auto;
|
|
padding: 2rem;
|
|
}
|
|
|
|
.blog-title {
|
|
font-size: 3rem;
|
|
margin-bottom: 3rem;
|
|
text-align: center;
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
|
|
.blog-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(12, 1fr);
|
|
gap: 2rem;
|
|
margin: 2rem 0;
|
|
}
|
|
|
|
.bento-item {
|
|
background: var(--card-bg);
|
|
border-radius: 20px;
|
|
overflow: hidden;
|
|
transition: all 0.3s ease;
|
|
border: 1px solid var(--border);
|
|
}
|
|
|
|
.bento-item.large {
|
|
grid-column: span 6;
|
|
grid-row: span 2;
|
|
}
|
|
|
|
.bento-item.medium {
|
|
grid-column: span 6;
|
|
grid-row: span 1;
|
|
}
|
|
|
|
.bento-item.small {
|
|
grid-column: span 4;
|
|
grid-row: span 1;
|
|
}
|
|
|
|
.bento-link {
|
|
display: block;
|
|
height: 100%;
|
|
text-decoration: none;
|
|
color: var(--text);
|
|
}
|
|
|
|
.bento-image {
|
|
width: 100%;
|
|
height: 200px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.bento-item.large .bento-image {
|
|
height: 300px;
|
|
}
|
|
|
|
.bento-image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.bento-content {
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.bento-item:hover {
|
|
transform: translateY(-5px);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.bento-item:hover .bento-image img {
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
/* Single Post Styles */
|
|
.blog-post {
|
|
max-width: 800px;
|
|
margin: 0 auto;
|
|
padding: 2rem;
|
|
}
|
|
|
|
.post-header {
|
|
text-align: center;
|
|
margin-bottom: 3rem;
|
|
}
|
|
|
|
.post-header h1 {
|
|
font-size: 3rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.post-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 1rem;
|
|
color: var(--text);
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.post-hero {
|
|
margin: -2rem -2rem 2rem;
|
|
height: 400px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.post-hero img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.post-content {
|
|
line-height: 1.8;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.post-footer {
|
|
margin-top: 4rem;
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 2rem;
|
|
}
|
|
|
|
.post-nav {
|
|
padding: 1rem;
|
|
border-radius: 10px;
|
|
text-decoration: none;
|
|
color: var(--text);
|
|
background: var(--card-bg);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.post-nav:hover {
|
|
transform: translateY(-3px);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.post-nav span {
|
|
font-size: 0.9rem;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
.post-nav h3 {
|
|
margin-top: 0.5rem;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.category {
|
|
display: inline-block;
|
|
padding: 0.2rem 0.8rem;
|
|
border-radius: 20px;
|
|
background: var(--accent);
|
|
color: white;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.blog-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.bento-item.large,
|
|
.bento-item.medium,
|
|
.bento-item.small {
|
|
grid-column: span 1;
|
|
grid-row: span 1;
|
|
}
|
|
|
|
.post-hero {
|
|
height: 250px;
|
|
margin: -1rem -1rem 1rem;
|
|
}
|
|
|
|
.post-header h1 {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.post-footer {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* 404 Page Styles */
|
|
.error-page {
|
|
min-height: calc(100vh - 200px);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 2rem;
|
|
background: linear-gradient(135deg, var(--background) 0%, var(--card-bg) 100%);
|
|
}
|
|
|
|
.error-content {
|
|
text-align: center;
|
|
max-width: 600px;
|
|
animation: fadeIn 0.5s ease-out;
|
|
}
|
|
|
|
.error-code {
|
|
font-size: 8rem;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
margin-bottom: 1rem;
|
|
background: linear-gradient(135deg, var(--accent) 0%, #00c6ff 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
text-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.error-content h1 {
|
|
font-size: 2.5rem;
|
|
margin-bottom: 1rem;
|
|
color: var(--text);
|
|
}
|
|
|
|
.error-content p {
|
|
font-size: 1.2rem;
|
|
color: var(--text);
|
|
opacity: 0.8;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.error-illustration {
|
|
margin: 3rem 0;
|
|
position: relative;
|
|
}
|
|
|
|
.astronaut {
|
|
width: 120px;
|
|
height: 120px;
|
|
margin: 0 auto;
|
|
animation: float 6s ease-in-out infinite;
|
|
}
|
|
|
|
.astronaut svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
fill: var(--accent);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.home-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 1rem 2rem;
|
|
background: var(--accent);
|
|
color: white;
|
|
text-decoration: none;
|
|
border-radius: 30px;
|
|
font-weight: 500;
|
|
transition: all 0.3s ease;
|
|
box-shadow: 0 10px 20px -10px var(--accent);
|
|
}
|
|
|
|
.home-button svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.home-button:hover {
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 15px 25px -10px var(--accent);
|
|
}
|
|
|
|
@keyframes float {
|
|
0%, 100% {
|
|
transform: translateY(0);
|
|
}
|
|
50% {
|
|
transform: translateY(-20px);
|
|
}
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.error-code {
|
|
font-size: 6rem;
|
|
}
|
|
|
|
.error-content h1 {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.error-content p {
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.astronaut {
|
|
width: 80px;
|
|
height: 80px;
|
|
}
|
|
}
|
|
|
|
.cv-button-container {
|
|
text-align: center;
|
|
margin: -1rem auto 3rem;
|
|
padding: 0 1rem;
|
|
max-width: 1400px;
|
|
}
|
|
|
|
.button-group {
|
|
display: flex;
|
|
gap: 1rem;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.primary-button,
|
|
.secondary-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 1rem 2rem;
|
|
border-radius: 30px;
|
|
font-weight: 500;
|
|
transition: all 0.3s ease;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.primary-button {
|
|
background: var(--accent);
|
|
color: white;
|
|
box-shadow: 0 10px 20px -10px var(--accent);
|
|
}
|
|
|
|
.secondary-button {
|
|
background: var(--card-bg);
|
|
color: var(--accent);
|
|
border: 2px solid var(--accent);
|
|
box-shadow: 0 10px 20px -10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.primary-button svg,
|
|
.secondary-button svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
.primary-button:hover {
|
|
transform: translateY(-3px);
|
|
box-shadow: 0 15px 25px -10px var(--accent);
|
|
}
|
|
|
|
.secondary-button:hover {
|
|
transform: translateY(-3px);
|
|
background: var(--accent);
|
|
color: white;
|
|
box-shadow: 0 15px 25px -10px var(--accent);
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 480px) {
|
|
.button-group {
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.primary-button,
|
|
.secondary-button {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
/* Typewriter Animation Styles */
|
|
.typewriter {
|
|
position: relative;
|
|
color: var(--accent);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.typewriter::after {
|
|
content: '|';
|
|
position: absolute;
|
|
right: -4px;
|
|
width: 1px;
|
|
animation: cursor 1s infinite;
|
|
}
|
|
|
|
@keyframes cursor {
|
|
0%, 100% { opacity: 1; }
|
|
50% { opacity: 0; }
|
|
}
|
|
|
|
.typewriter-text {
|
|
display: inline-block;
|
|
}
|
|
|
|
/* Waving Hand Animation */
|
|
.waving-hand {
|
|
display: inline-block;
|
|
animation: wave 2.5s infinite;
|
|
transform-origin: 70% 70%;
|
|
}
|
|
|
|
@keyframes wave {
|
|
0% { transform: rotate(0deg); }
|
|
10% { transform: rotate(14deg); }
|
|
20% { transform: rotate(-8deg); }
|
|
30% { transform: rotate(14deg); }
|
|
40% { transform: rotate(-4deg); }
|
|
50% { transform: rotate(10deg); }
|
|
60% { transform: rotate(0deg); }
|
|
100% { transform: rotate(0deg); }
|
|
}
|
|
|
|
/* About Section Styles */
|
|
.about-section {
|
|
text-align: center;
|
|
padding: 4rem 2rem;
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
background: var(--card-bg);
|
|
border-radius: 20px;
|
|
box-shadow: 0 10px 30px -15px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.about-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2rem;
|
|
}
|
|
|
|
.tech-stack {
|
|
display: flex;
|
|
gap: 1.2rem;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
margin-top: 1rem;
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
.tech-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.8rem;
|
|
background: linear-gradient(135deg, var(--accent), #00c6ff);
|
|
color: white;
|
|
padding: 0.8rem 1.5rem;
|
|
border-radius: 30px;
|
|
font-weight: 500;
|
|
font-size: 1rem;
|
|
box-shadow: 0 4px 15px -3px rgba(var(--accent-rgb), 0.4);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.tech-icon {
|
|
width: 24px;
|
|
height: 24px;
|
|
fill: currentColor;
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.about-section {
|
|
padding: 2rem 1.5rem;
|
|
margin: 1rem;
|
|
}
|
|
|
|
.about-intro {
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.tech-description {
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.tech-stack {
|
|
gap: 1rem;
|
|
padding: 1rem 0.5rem;
|
|
}
|
|
|
|
.tech-pill {
|
|
padding: 0.7rem 1.2rem;
|
|
font-size: 0.9rem;
|
|
min-width: calc(50% - 1rem); /* Pour avoir 2 par ligne */
|
|
justify-content: center;
|
|
}
|
|
|
|
.tech-icon {
|
|
width: 20px;
|
|
height: 20px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tech-stack {
|
|
flex-direction: column;
|
|
gap: 1rem;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.tech-pill {
|
|
min-width: auto;
|
|
padding: 0.8rem 1rem;
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
/* Scroll Arrow */
|
|
.scroll-arrow {
|
|
margin-top: 3rem;
|
|
animation: bounce 2s infinite;
|
|
}
|
|
|
|
.scroll-arrow svg {
|
|
width: 40px;
|
|
height: 40px;
|
|
fill: var(--accent);
|
|
opacity: 0.8;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.scroll-arrow:hover svg {
|
|
opacity: 1;
|
|
transform: translateY(5px);
|
|
}
|
|
|
|
@keyframes bounce {
|
|
0%, 20%, 50%, 80%, 100% {
|
|
transform: translateY(0);
|
|
}
|
|
40% {
|
|
transform: translateY(-20px);
|
|
}
|
|
60% {
|
|
transform: translateY(-10px);
|
|
}
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 768px) {
|
|
.scroll-arrow {
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.scroll-arrow svg {
|
|
width: 32px;
|
|
height: 32px;
|
|
}
|
|
}
|
|
|
|
/* Skills Section */
|
|
.skills-section {
|
|
padding: 4rem 2rem;
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.skills-content {
|
|
max-width: 800px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.skills-section h2 {
|
|
text-align: center;
|
|
margin-bottom: 3rem;
|
|
color: var(--text);
|
|
font-size: 1.8rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.skills-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.skill-item {
|
|
width: 100%;
|
|
}
|
|
|
|
.skill-info {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.skill-name {
|
|
color: var(--text);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.skill-percentage {
|
|
color: var(--accent);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.skill-bar {
|
|
height: 8px;
|
|
background: rgba(var(--accent-rgb), 0.1);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.skill-progress {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, var(--accent), #00c6ff);
|
|
border-radius: 4px;
|
|
width: 0;
|
|
transition: width 1.5s ease-out;
|
|
}
|
|
|
|
/* Responsive */
|
|
@media (max-width: 768px) {
|
|
.skills-section {
|
|
padding: 2rem 1rem;
|
|
}
|
|
|
|
.skills-section h2 {
|
|
font-size: 1.5rem;
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.skills-container {
|
|
gap: 1.2rem;
|
|
}
|
|
|
|
.skill-bar {
|
|
height: 6px;
|
|
}
|
|
}
|