all updates + fix bug

This commit is contained in:
KIRITO_KMA 2026-04-07 01:51:50 +02:00
parent 78dc2e6e7f
commit f17ca2527c
44 changed files with 1087 additions and 521 deletions

View file

@ -1130,7 +1130,7 @@ section {
position: absolute;
inset: 0;
background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
opacity: 0.4;
/* opacity retiré — géré par portfolio-content gradient */
}
.portfolio-content {
@ -1140,7 +1140,9 @@ section {
flex-direction: column;
justify-content: flex-end;
padding: 2rem;
background: linear-gradient(180deg, transparent 0%, var(--bg-deep) 100%);
/* Gradient sombre uniquement en bas pour lisibilité du texte sans masquer l'image */
background: linear-gradient(180deg, transparent 55%, rgba(10,10,15,0.92) 100%);
z-index: 2;
}
.portfolio-tag {
@ -1169,9 +1171,7 @@ section {
}
.portfolio-item p {
color: var(--text-muted);
font-size: 0.9rem;
margin-top: 0.5rem;
display: none; /* Description masquée dans les cartes — visible uniquement dans la modal */
}
/* Portfolio Detail */
@ -2118,13 +2118,12 @@ footer {
overflow: hidden;
}
/* Pas d'overlay sur le bento — juste gradient bas pour lisibilité texte */
.bento-project .bento-image::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(139, 58, 98, 0.3), rgba(45, 27, 51, 0.5));
display: none;
}
/* Gradient sombre en bas pour le texte */
.bento-project .bento-image::after {
content: '';
position: absolute;
@ -2132,7 +2131,9 @@ footer {
left: 0;
right: 0;
height: 50%;
background: linear-gradient(to top, var(--bg-deep), transparent);
background: linear-gradient(to top, rgba(10,10,15,0.9) 0%, transparent 100%);
z-index: 2;
pointer-events: none;
}
.bento-image-content {
@ -2140,7 +2141,7 @@ footer {
bottom: 2rem;
left: 2rem;
right: 2rem;
z-index: 1;
z-index: 3;
}
.bento-image-content .portfolio-tag {
@ -2462,19 +2463,43 @@ footer {
}
.project-gallery-slides {
display: flex;
position: relative;
width: 100%;
height: 100%;
transition: transform 0.5s ease;
}
.project-gallery-slide {
min-width: 100%;
position: absolute;
inset: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
opacity: 0;
pointer-events: none;
transition: opacity 0.35s ease, transform 0.35s ease;
transform: translateX(100%);
will-change: transform, opacity;
}
/* Slide à gauche de la courante */
.project-gallery-slide.slide-left {
transform: translateX(-100%);
opacity: 0;
}
/* Slide à droite de la courante */
.project-gallery-slide.slide-right {
transform: translateX(100%);
opacity: 0;
}
/* Slide active — visible */
.project-gallery-slide.active {
opacity: 1;
transform: translateX(0) !important;
pointer-events: auto;
}
.project-gallery-slide::before {
@ -2700,12 +2725,12 @@ footer {
position: absolute;
inset: 0;
background: transparent;
z-index: 1;
z-index: 3;
transition: background 0.3s ease;
}
.portfolio-item:hover::before {
background: rgba(139, 58, 98, 0.1);
background: rgba(139, 58, 98, 0.08);
}
.portfolio-item:active {
@ -4171,13 +4196,85 @@ footer {
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
z-index: 1; /* au-dessus du gradient .portfolio-bg */
display: block;
}
/* .portfolio-bg conserve son gradient en fallback derrière l'image */
/* .portfolio-bg — override pour les cartes avec image */
.portfolio-bg {
position: absolute;
inset: 0;
overflow: hidden;
/* gradient retiré ici — défini dans la règle principale */
background: none;
}
/* ═══════════════════════════════════════════════════════════════════════════
BENTO + PORTFOLIO — image de couverture réelle
═══════════════════════════════════════════════════════════════════════════ */
.bento-cover-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1; /* au-dessus du gradient de fond */
display: block;
}
/* bento-image-content — z-index géré dans la règle principale ligne ~2141 */
/* ═══════════════════════════════════════════════════════════════════════════
GALLERY — iframe YouTube
═══════════════════════════════════════════════════════════════════════════ */
.yt-wrapper {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.gallery-slide-yt-iframe {
width: 100%;
height: 100%;
border: none;
display: block;
}
/* ═══════════════════════════════════════════════════════════════════════════
GALLERY — bouton mute vidéo
═══════════════════════════════════════════════════════════════════════════ */
.gallery-mute-btn {
position: absolute;
bottom: 3rem; /* au-dessus des dots */
right: 1rem;
z-index: 10;
width: 38px;
height: 38px;
background: rgba(0, 0, 0, 0.6);
border: 1px solid rgba(255,255,255,0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
color: white;
transition: background 0.2s ease;
backdrop-filter: blur(4px);
}
.gallery-mute-btn:hover {
background: rgba(139, 58, 98, 0.8);
border-color: var(--accent-primary);
}
/* Icône son coupé = visible par défaut (muted=true au départ) */
.gallery-mute-btn .icon-muted { display: block; }
.gallery-mute-btn .icon-unmuted { display: none; }
/* Quand le son est activé */
.gallery-mute-btn.unmuted .icon-muted { display: none; }
.gallery-mute-btn.unmuted .icon-unmuted { display: block; }