/* === IMPROVEMENT 10/10: Kassiope Agency Design Sublimation === */
/* Boutons avec glow pulse animation */
@keyframes glowPulse {
0% { box-shadow: 0 0 5px rgba(108, 99, 255, 0.4), 0 0 10px rgba(108, 99, 255, 0.2); }
50% { box-shadow: 0 0 20px rgba(108, 99, 255, 0.6), 0 0 40px rgba(108, 99, 255, 0.3); }
100% { box-shadow: 0 0 5px rgba(108, 99, 255, 0.4), 0 0 10px rgba(108, 99, 255, 0.2); }
}
@keyframes glowPulseCyan {
0% { box-shadow: 0 0 5px rgba(0, 212, 255, 0.4), 0 0 10px rgba(0, 212, 255, 0.2); }
50% { box-shadow: 0 0 20px rgba(0, 212, 255, 0.6), 0 0 40px rgba(0, 212, 255, 0.3); }
100% { box-shadow: 0 0 5px rgba(0, 212, 255, 0.4), 0 0 10px rgba(0, 212, 255, 0.2); }
}
.btn-ka,
.btn-primary,
.btn[class*="primary"],
section .btn:not(.btn-link):not(.o_we_force_no_glow) {
animation: glowPulse 2.5s ease-in-out infinite;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.btn-ka:hover,
.btn-primary:hover,
.btn[class*="primary"]:hover,
section .btn:not(.btn-link):hover {
animation-play-state: paused;
transform: translateY(-3px) scale(1.03);
box-shadow: 0 8px 30px rgba(108, 99, 255, 0.5);
}
.btn-ka-secondary,
.btn-secondary {
animation: glowPulseCyan 2.5s ease-in-out infinite;
}
/* Grile services avec hover scale + gradient overlay */
.o_we_service_card,
.service-card,
.card.o_we_service,
.col-lg-4 .oe_structure > div,
section .col-lg-4 > div {
position: relative;
overflow: hidden;
transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275),
box-shadow 0.4s ease;
}
.o_we_service_card:hover,
.service-card:hover,
.card.o_we_service:hover,
.col-lg-4 .oe_structure > div:hover,
section .col-lg-4 > div:hover {
transform: scale(1.05);
box-shadow: 0 15px 45px rgba(108, 99, 255, 0.25),
0 5px 15px rgba(0, 0, 0, 0.2);
}
.o_we_service_card::after,
.service-card::after,
.card.o_we_service::after {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: linear-gradient(135deg, rgba(108, 99, 255, 0.2) 0%, transparent 50%, rgba(0, 212, 255, 0.1) 100%);
opacity: 0;
transition: opacity 0.5s ease;
pointer-events: none;
z-index: 1;
}
.o_we_service_card:hover::after,
.service-card:hover::after,
.card.o_we_service:hover::after {
opacity: 1;
}
.o_we_service_card:hover img,
.service-card:hover img,
.card.o_we_service:hover img {
transform: scale(1.1);
}
.o_we_service_card img,
.service-card img,
.card.o_we_service img {
transition: transform 0.6s ease;
}
/* Animations entrance au scroll (stagger) */
@keyframes fadeUpKA {
from { opacity: 0; transform: translateY(60px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInScale {
from { opacity: 0; transform: scale(0.9); }
to { opacity: 1; transform: scale(1); }
}
.ka-fade-up {
animation: fadeUpKA 0.7s ease forwards;
}
.ka-fade-scale {
animation: fadeInScale 0.6s ease forwards;
}
/* Stagger on cards grid */
.row > .col-lg-4,
.row > .col-md-6,
.row > .col-sm-6 {
animation: fadeUpKA 0.7s ease forwards;
opacity: 0;
}
.row > .col-lg-4:nth-child(1),
.row > .col-md-6:nth-child(1),
.row > .col-sm-6:nth-child(1) { animation-delay: 0.05s; }
.row > .col-lg-4:nth-child(2),
.row > .col-md-6:nth-child(2),
.row > .col-sm-6:nth-child(2) { animation-delay: 0.15s; }
.row > .col-lg-4:nth-child(3),
.row > .col-md-6:nth-child(3),
.row > .col-sm-6:nth-child(3) { animation-delay: 0.25s; }
.row > .col-lg-4:nth-child(4),
.row > .col-md-6:nth-child(4),
.row > .col-sm-6:nth-child(4) { animation-delay: 0.35s; }
.row > .col-lg-4:nth-child(5),
.row > .col-md-6:nth-child(5),
.row > .col-sm-6:nth-child(5) { animation-delay: 0.45s; }
.row > .col-lg-4:nth-child(6),
.row > .col-md-6:nth-child(6),
.row > .col-sm-6:nth-child(6) { animation-delay: 0.55s; }
.row > .col-lg-4:nth-child(7),
.row > .col-md-6:nth-child(7),
.row > .col-sm-6:nth-child(7) { animation-delay: 0.65s; }
.row > .col-lg-4:nth-child(8),
.row > .col-md-6:nth-child(8),
.row > .col-sm-6:nth-child(8) { animation-delay: 0.75s; }
.row > .col-lg-4:nth-child(9),
.row > .col-md-6:nth-child(9),
.row > .col-sm-6:nth-child(9) { animation-delay: 0.85s; }
/* Stats section with animated counter suggestion */
.counter-stat,
.stat-box,
.o_counter {
position: relative;
padding: 30px 20px;
text-align: center;
}
.counter-stat .stat-number,
.stat-box .number,
.o_counter .o_counter_number {
font-size: 3.5rem;
font-weight: 800;
background: linear-gradient(135deg, #6C63FF, #00D4FF);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.counter-stat .stat-label,
.stat-box .label,
.o_counter .o_counter_label {
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 2px;
color: rgba(255, 255, 255, 0.7);
margin-top: 8px;
}
/* Kassiope palette utilities */
.text-ka-violet { color: #6C63FF; }
.text-ka-cyan { color: #00D4FF; }
.bg-ka-dark { background-color: #0A1628; }
.bg-ka-card { background-color: #0F1D35; }
/* Dark theme polish for Kassiope sections */
section:not(.o_we_force_no_dark) {
background-color: #0A1628;
}
section:not(.o_we_force_no_dark) h1,
section:not(.o_we_force_no_dark) h2,
section:not(.o_we_force_no_dark) h3 {
color: #ffffff;
}
section:not(.o_we_force_no_dark) p,
section:not(.o_we_force_no_dark) .lead {
color: rgba(255, 255, 255, 0.85);
}
/* Sticky nav with blur for Kassiope */
header.o_header_affix,
nav.navbar.fixed-top {
backdrop-filter: blur(14px) saturate(200%);
-webkit-backdrop-filter: blur(14px) saturate(200%);
background-color: rgba(10, 22, 40, 0.9) !important;
border-bottom: 1px solid rgba(108, 99, 255, 0.15);
}
/* Card background on dark */
.card, .o_we_service_card, .service-card {
background: #0F1D35;
border: 1px solid rgba(108, 99, 255, 0.1);
border-radius: 12px;
}
Skip to Content
Vie privée
Politique vie privée
Comment Kassiope traite tes données personnelles. RGPD compliant, transparence radicale, aucun tracking caché.
1. Qui sommes-nous ?
Le site kassiopeagency.com est édité par Madi Karim (Kassiope Agency), entrepreneur individuel basé à Poitiers, France.
Contact RGPD : contact@kassiopeagency.com
2. Quelles données collectons-nous ?
- Identification : nom, prénom, email (si tu remplis un formulaire ou réserves un audit)
- Communication : contenu de tes messages, échanges email
- Navigation : adresse IP, type de navigateur, pages visitées (via cookies analytics)
- Newsletter : email uniquement (avec consentement explicite, désabonnement 1 clic)
3. Pourquoi traitons-nous tes données ?
- Répondre à tes demandes (formulaires, emails)
- Te fournir les prestations Kassiope Studio si tu deviens client
- Améliorer le site (analytics anonymisés)
- Envoyer la newsletter uniquement si tu y as souscrit
4. Combien de temps gardons-nous tes données ?
3 ans après notre dernier échange, sauf obligation légale (factures = 10 ans). Tu peux demander leur suppression à tout moment.
5. Tes droits RGPD
Tu disposes des droits suivants sur tes données :
- Accès : obtenir copie de tes données
- Rectification : corriger des données inexactes
- Effacement : demander la suppression
- Opposition : refuser le traitement à tout moment
- Portabilité : récupérer tes données dans un format standard
Pour exercer ces droits : contact@kassiopeagency.com. Réponse sous 30 jours max.
6. Cookies
Le site utilise des cookies techniques (session, préférences) nécessaires au fonctionnement, et des cookies analytics anonymisés. Tu peux refuser les cookies non essentiels via le bandeau de consentement.
7. Sous-traitants
Tes données peuvent être traitées par nos sous-traitants : Odoo S.A. (hébergement), Stripe (paiement). Tous sont RGPD compliant.
8. Réclamation CNIL
Si tu estimes que tes droits ne sont pas respectés, tu peux déposer une réclamation auprès de la CNIL : www.cnil.fr.