:root{--color-silver:#c6c5b9;--color-blue:#a1ccd1;--color-blue-opacity:#a1ccd140;--color-dark-blue:#516668;--color-beige:#f4f2de;--color-beige-opacity:#f4f2de40;--color-dark-beige:#7a796f;--color-green:#7c9d96;--color-green-opacity:#7c9d9640;--color-dark-green:#3e4e4b}body{background-color:#0000;position:relative}.home-introduction-section{align-items:center;background:linear-gradient(135deg,#f5f0e8,#e8dcc8);display:flex;min-height:350px;padding:100px 0 80px;position:relative;z-index:10}.home-introduction-section .introduction-overlay{background:#ffffffd9;bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.home-introduction-section .container{max-width:1200px;position:relative;z-index:2}.home-introduction-section .introduction-content{margin:0 auto;max-width:900px;text-align:center}.home-introduction-section .introduction-title{color:#1a1a1a;font-size:48px;font-weight:700;letter-spacing:-.5px;line-height:1.2;margin-bottom:30px}.home-introduction-section .introduction-text{color:#333;font-size:18px;line-height:1.8}.home-introduction-section .introduction-text p{margin-bottom:15px}.home-introduction-section .introduction-text p:last-child{margin-bottom:0}.home-introduction-section .introduction-text p strong{color:#000;font-weight:600}.home-introduction-section .introduction-text a{color:var(--color-dark-blue);font-weight:600;padding-bottom:2px;position:relative;text-decoration:none;transition:color .3s ease}.home-introduction-section .introduction-text a:after{background:linear-gradient(90deg,var(--color-blue) 0,var(--color-green) 50%,var(--color-blue) 100%);background-position:100% 0;background-size:200% 100%;bottom:0;content:"";height:2px;left:0;position:absolute;transition:background-position .3s ease;width:100%}.home-introduction-section .introduction-text a:hover{color:var(--color-green)}.home-introduction-section .introduction-text a:hover:after{background-position:0 0}.home-carousel-section{background:#fff;padding:0;position:relative;z-index:10}.home-carousel{border-radius:0;height:70vh;margin:0;max-height:700px;max-width:100%;min-height:600px;overflow:hidden;padding:0;position:relative}.home-carousel .carousel-inner{border:none;border-radius:0}.home-carousel .carousel-inner,.home-carousel .carousel-item{height:100%;overflow:hidden}.home-carousel .carousel-item{transition:transform 1.2s cubic-bezier(.45,.05,.55,.95)}.home-carousel .carousel-slide{align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;display:flex;height:100%;justify-content:center;position:relative;will-change:transform}.home-carousel .carousel-slide:before{background:#0000004d;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:opacity .5s ease-in-out;z-index:1}.home-carousel .carousel-overlay{background:#0006;bottom:0;left:0;position:absolute;right:0;top:0;transition:background .3s ease;z-index:1}.home-carousel .carousel-caption-bottom{backdrop-filter:none;background:#0000;border-radius:0;bottom:0;left:0;margin:0;padding:50px;position:absolute;right:0;text-align:left;top:auto;transform:none;width:100%;z-index:2}.home-carousel .carousel-link-content{display:block;text-decoration:none;transition:all .3s ease}.home-carousel .carousel-link-content:hover{text-decoration:none}.home-carousel .carousel-link-content:hover .carousel-title-bottom{color:#ffffffe6}.home-carousel .carousel-meta{align-items:center;display:flex;font-size:12px;font-weight:400;gap:15px;margin-bottom:20px}.home-carousel .carousel-meta .carousel-category,.home-carousel .carousel-meta .carousel-date{color:#fff;letter-spacing:2px;text-transform:uppercase}.home-carousel .carousel-meta .separator{color:#fff9;font-size:10px}.home-carousel .carousel-title-bottom{color:#fff;font-size:42px;font-weight:700;letter-spacing:normal;line-height:1.2;margin:0 0 20px;text-decoration:none;text-shadow:2px 2px 10px #00000080;text-transform:none;transition:color .3s ease}.home-carousel .carousel-excerpt{color:#ffffffe6;font-size:16px;font-weight:300;line-height:1.6;margin-bottom:25px;max-width:800px;text-shadow:1px 1px 5px #00000080}.home-carousel .carousel-read-more{border-bottom:2px solid #fff;color:#fff;display:inline-block;font-size:13px;font-weight:400;letter-spacing:2px;padding-bottom:5px;text-transform:uppercase;transition:transform .3s ease}.home-carousel .carousel-control-next,.home-carousel .carousel-control-prev{background-color:#ffffffe6;border:none;border-radius:0;box-shadow:0 2px 8px #0003;height:50px;opacity:0;top:50%;transform:translateY(-50%);transition:all .3s ease;visibility:hidden;width:50px;z-index:3}.home-carousel .carousel-control-next:hover,.home-carousel .carousel-control-prev:hover{background-color:#000c;box-shadow:0 4px 12px #0000004d;transform:translateY(-50%)}.home-carousel .carousel-control-next:hover .carousel-control-icon i,.home-carousel .carousel-control-prev:hover .carousel-control-icon i{color:#fff}.home-carousel .carousel-control-next .carousel-control-icon,.home-carousel .carousel-control-prev .carousel-control-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.home-carousel .carousel-control-next .carousel-control-icon i,.home-carousel .carousel-control-prev .carousel-control-icon i{color:#000;font-size:20px;transition:color .3s ease}.home-carousel:hover .carousel-control-next,.home-carousel:hover .carousel-control-prev{opacity:1;visibility:visible}.home-carousel .carousel-control-prev{left:20px}.home-carousel .carousel-control-next{right:20px}.home-tags-section{background-color:#fafafa;border-bottom:1px solid #eee;border-top:1px solid #eee;padding:60px 0;position:relative;z-index:10}.home-tags-section .tags-container{display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin:0 auto;max-width:1000px;padding:0 20px}.home-tags-section .tag-button{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;box-shadow:0 1px 3px #0000000d;display:flex;gap:10px;justify-content:center;padding:12px 20px;position:relative;text-decoration:none;transition:all .3s ease}.home-tags-section .tag-button:hover{background-color:#000;border-color:#000;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.home-tags-section .tag-button:hover .tag-icon i,.home-tags-section .tag-button:hover .tag-name{color:#fff}.home-tags-section .tag-button:hover .tag-count{background-color:#fff;color:#000}.home-tags-section .tag-button .tag-icon{align-items:center;display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}.home-tags-section .tag-button .tag-icon i{color:#666;font-size:14px;transition:color .3s ease}.home-tags-section .tag-button .tag-name{color:#333;font-size:13px;font-weight:400;letter-spacing:1px;transition:color .3s ease}.home-tags-section .tag-button .tag-count{align-items:center;background-color:#000;border-radius:3px;color:#fff;display:flex;font-size:11px;font-weight:600;height:20px;justify-content:center;min-width:20px;padding:2px 6px;transition:all .3s ease}.home-blog-articles{background-color:#fff;overflow:hidden;padding:120px 0;position:relative;z-index:5}.home-blog-articles:before{background:linear-gradient(180deg,#fafafa,#fff);content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:0}.home-blog-articles .video-background{display:none}.home-blog-articles .container{position:relative;z-index:2}.home-blog-articles .section-title{color:#999;font-size:14px;font-weight:400;letter-spacing:2px;margin-bottom:80px;position:relative;text-align:center;text-transform:uppercase}.home-blog-articles .section-title:after{background:#000;content:"";display:block;height:2px;margin:20px auto 0;width:60px}.home-blog-articles .view-all-btn{align-items:center;background-color:#0000;border:2px solid #000;border-radius:0;color:#000;display:inline-flex;font-size:13px;font-weight:400;gap:10px;letter-spacing:2px;padding:15px 50px;text-decoration:none;text-transform:uppercase;transition:all .3s ease}.home-blog-articles .view-all-btn:hover{background-color:#000;box-shadow:0 8px 20px #00000026;color:#fff;transform:translateY(-2px)}.home-blog-articles .view-all-btn i{font-size:14px;transition:transform .3s ease}.home-blog-articles .view-all-btn:hover i{transform:translateX(5px)}.home-quick-links{background:#fafafa;padding:120px 0;position:relative;z-index:10}.home-quick-links .section-title{color:#666;font-size:14px;font-weight:400;letter-spacing:2px;margin-bottom:80px;position:relative;text-align:center;text-transform:uppercase}.home-quick-links .section-title:after{background:#000;content:"";display:block;height:2px;margin:20px auto 0;width:60px}.home-quick-links .quick-links-grid{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:0 auto;max-width:1200px;padding:0 20px}.home-quick-links .quick-link-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:0;box-shadow:0 2px 15px #0000000f;height:280px;overflow:hidden;position:relative;text-decoration:none;transition:all .4s ease}.home-quick-links .quick-link-card:before{background:#000;bottom:0;content:"";height:3px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.home-quick-links .quick-link-card.cv-card:before{background:#2196f3}.home-quick-links .quick-link-card.blog-card:before{background:#ff9800}.home-quick-links .quick-link-card.apps-card:before{background:#9c27b0}.home-quick-links .quick-link-card.contact-card:before{background:#4caf50}.home-quick-links .quick-link-card:hover{border-color:#000;box-shadow:0 12px 35px #0000001f;transform:translateY(-8px)}.home-quick-links .quick-link-card:hover:before{transform:scaleX(1)}.home-quick-links .quick-link-card:hover .quick-link-content i{transform:translateY(-5px)}.home-quick-links .quick-link-card .quick-link-content{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px 30px;position:relative;text-align:center;z-index:1}.home-quick-links .quick-link-card .quick-link-content i{color:#333;font-size:42px;margin-bottom:25px;transition:all .4s ease}.home-quick-links .quick-link-card .quick-link-content h3{color:#000;font-size:20px;font-weight:600;letter-spacing:.5px;margin-bottom:10px}.home-quick-links .quick-link-card .quick-link-content p{color:#666;font-size:13px;font-weight:400;letter-spacing:.5px;margin:0;text-transform:uppercase}.home-quick-links .quick-link-card.cv-card:hover .quick-link-content i{color:#2196f3}.home-quick-links .quick-link-card.blog-card:hover .quick-link-content i{color:#ff9800}.home-quick-links .quick-link-card.apps-card:hover .quick-link-content i{color:#9c27b0}.home-quick-links .quick-link-card.contact-card:hover .quick-link-content i{color:#4caf50}@media(max-width:992px){.home-tags-section .tags-container{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.home-introduction-section{min-height:auto;padding:60px 0 50px}.home-introduction-section .introduction-content{padding:0 20px}.home-introduction-section .introduction-title{font-size:32px;margin-bottom:25px}.home-introduction-section .introduction-text{font-size:16px;line-height:1.7;text-align:left}.home-introduction-section .introduction-text p{margin-bottom:12px}.home-carousel{border-radius:0;height:50vh;margin:0;max-width:100%;min-height:400px;padding:0}.home-carousel .carousel-inner{border:none;border-radius:0}.home-carousel .carousel-slide{border-radius:0;will-change:auto}.home-carousel .carousel-slide:before{border-radius:0}.home-carousel .carousel-caption-bottom{border-radius:0;padding:20px;width:100%}.home-carousel .carousel-meta{font-size:10px;gap:10px;margin-bottom:15px}.home-carousel .carousel-title-bottom{font-size:20px;margin-bottom:15px}.home-carousel .carousel-excerpt{font-size:14px;line-height:1.5;margin-bottom:20px}.home-carousel .carousel-read-more{font-size:11px}.home-carousel .carousel-control-prev{left:10px}.home-carousel .carousel-control-next{right:10px}.home-carousel .carousel-control-next,.home-carousel .carousel-control-prev{background-color:#ffffffe6;border:2px solid #000;box-shadow:none;height:40px;width:40px}.home-carousel .carousel-control-next:hover,.home-carousel .carousel-control-prev:hover{box-shadow:none;transform:translateY(-50%)}.home-carousel .carousel-control-next .carousel-control-icon i,.home-carousel .carousel-control-prev .carousel-control-icon i{font-size:16px}.home-tags-section{padding:30px 0 50px}.home-tags-section .tags-container{gap:10px;grid-template-columns:repeat(2,1fr)}.home-tags-section .tag-button{gap:8px;padding:10px 20px}.home-tags-section .tag-button .tag-icon{height:35px;width:35px}.home-tags-section .tag-button .tag-icon i{font-size:16px}.home-tags-section .tag-button .tag-name{font-size:13px}.home-blog-articles{padding:60px 20px}.home-blog-articles .section-title{font-size:32px;margin-bottom:40px}.home-quick-links{padding:60px 20px}.home-quick-links .quick-links-grid{gap:20px;grid-template-columns:1fr}.home-quick-links .quick-link-card{height:200px}}header{background:url(/build/images/code_600web-min.54bac578.jpg) no-repeat 50% 50%;background-size:cover;box-shadow:inset 0 0 55px #000;height:600px;margin-bottom:0;position:relative;width:100%;z-index:15}.sourcecodepro li{font-family:Source Code Pro}.welcome-section{animation-duration:3s;animation-name:fade-welcome;animation-timing-function:ease-out;background:#0000;height:600px;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:20}@media screen and (max-width:768px){.welcome-section{height:500px}}@keyframes fade-welcome{0%{background:#000000e6}to{background:#0000}}.content-wrap{margin:auto;max-height:300px;position:absolute;top:50%;transform:translateY(-50%);width:100%}.content-wrap #logo-image{height:100%;max-width:1000px;position:absolute;top:0;width:100%}.content-wrap #logo-trait:before{animation-duration:4s;animation-name:fade-trait;animation-timing-function:easeout;border:solid #51a9ec;content:" ";max-width:150px;position:absolute;width:16%}.content-wrap #logo-sous-titre{color:#fff;font-size:20px;font-weight:lighter;letter-spacing:3px;text-transform:uppercase}.content-wrap #web{animation-duration:4s;animation-name:fade-web;animation-timing-function:easeout;height:100%;left:17%;opacity:1;position:absolute;top:0}.content-wrap #logo-lettres{margin:auto;max-width:720px;text-align:left}.content-wrap #logo-lettres ul{padding:0}.content-wrap #logo-lettres .fly-in-text{list-style:none;margin:0}.content-wrap #logo-lettres .fly-in-text li{color:#fff;display:inline-block;font-size:1.5em;opacity:1}.content-wrap #logo-lettres #l01,.content-wrap #logo-lettres #l02,.content-wrap #logo-lettres #l03,.content-wrap #logo-lettres #l04,.content-wrap #logo-lettres #l05,.content-wrap #logo-lettres #l06,.content-wrap #logo-lettres #l07,.content-wrap #logo-lettres #l08,.content-wrap #logo-lettres #l09,.content-wrap #logo-lettres #l10,.content-wrap #logo-lettres #l11{animation-duration:4s;opacity:0}@media screen and (max-width:992px){.content-wrap #logo-lettres{max-width:640px}.content-wrap #web{left:18%}.content-wrap #logo-sous-titre{font-size:18px}}@media screen and (max-width:768px){.content-wrap #logo-lettres{max-width:510px}.content-wrap #web{left:18%}.content-wrap #logo-sous-titre{font-size:16px}}@media screen and (max-width:576px){.content-wrap #logo-lettres{max-width:370px}.content-wrap #web{left:19%}.content-wrap #logo-sous-titre{font-size:15px;position:absolute}}@media screen and (max-width:450px){.content-wrap #logo-lettres{max-width:280px}.content-wrap #web{left:19%}.content-wrap #logo-sous-titre{font-size:12px}}#l01{animation-name:fade-l01}#l02{animation-name:fade-l02}#l03{animation-name:fade-l03}#l04{animation-name:fade-l04}#l05{animation-name:fade-l05}#l06{animation-name:fade-l06}#l07{animation-name:fade-l07}#l08{animation-name:fade-l08}#l09{animation-name:fade-l09}#l10{animation-name:fade-l10}#l11{animation-name:fade-l11}@keyframes fade-l01{0%{opacity:1}10%{opacity:1}40%{opacity:0}}@keyframes fade-l02{0%{opacity:1}20%{opacity:1}50%{opacity:0}}@keyframes fade-l03{0%{opacity:1}30%{opacity:1}60%{opacity:0}}@keyframes fade-l04{0%{opacity:1}40%{opacity:1}70%{opacity:0}}@keyframes fade-l05{0%{opacity:1}50%{opacity:1}70%{opacity:0}}@keyframes fade-l06{0%{opacity:1}10%{opacity:1}40%{opacity:0}}@keyframes fade-l07{0%{opacity:1}18%{opacity:1}40%{opacity:0}}@keyframes fade-l08{0%{opacity:1}26%{opacity:1}50%{opacity:0}}@keyframes fade-l09{0%{opacity:1}34%{opacity:1}60%{opacity:0}}@keyframes fade-l10{0%{opacity:1}42%{opacity:1}70%{opacity:0}}@keyframes fade-l11{0%{opacity:1}50%{opacity:1}70%{opacity:0}}@keyframes fade-web{0%{opacity:0}30%{left:-200px}40%{opacity:0}80%{left:17%}to{opacity:1}}@keyframes fade-trait{0%{opacity:0;width:0}40%{opacity:0;width:0}60%{opacity:1}80%{width:16%}}