/* MARGIN */
body{
    --container-space : 7vw;
    font-family: 'Urbanist', sans-serif;
    background-color: var(--wp--preset--color--blanc);
    color: var(--wp--preset--color--noir);
}
body.bkg-black{
    background-color: var(--wp--preset--color--noir);
    color: var(--wp--preset--color--blanc);
}

/* INITIAL LIST STYLE*/
.nav ul {
    list-style: none;
    margin-bottom: 0;
}
.list-unstyled {
    list-style: none;
    margin: 0;
    padding: 0;
}
p{
    color: var(--wp--preset--color--noir);
    font-size: 15px;
}
a{
    text-decoration: none;
    color: var(--wp--preset--color--noir);
}
ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
li{
    transition: font-weight 0.3s ease;
}
li:hover{
    cursor: pointer;
}
a:where(:not(.wp-element-button)) {
    text-decoration: none;
}
/* a:-webkit-any-link {
    color: var(--wp--preset--color--blanc);
} */
a:focus {
    outline: none;
}
:root :where(a:where(:not(.wp-element-button))) {
    text-decoration: none;
}
.text-split-animation, .text-split-onload {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.1rem;
    overflow: hidden;
}
.text-split-animation .word, .text-split-onload .word {
    display: flex;
}
.text-split-animation .char, .text-split-onload .char {
    display: block;
    position: relative;
    overflow: hidden;
}
.text-split-animation .char span,
.text-split-animation .line span, .text-split-onload .char span, .text-split-onload .line span {
    display: inline-block;
    position: relative;
    transform: translateY(0);
}
.text-split-animation .line, .text-split-onload .line {
    display: block;
    width: 100%;
    overflow: hidden;
}
h1{
    display: flex;
}
.text-reveal, .text-typewritting, .text-wave, .text-fade-blur, .text-3d-rotation {
    display: flex;
    justify-content: center;
}

/* Styles pour l'animation text-wave */
.text-wave {
    margin: 0.5em 0;
    font-weight: bold;
}
.text-wave .char {
    display: inline-block;
    transition: transform 0.3s ease;
}

/* Text swap onload: two layers, front and back. Front chars move up while back chars move up to replace them */
.text-swap-onload {
    display: inline-block;
    position: relative;
    overflow: hidden;
    line-height: 1;
    height: 25px;
    width: 200px;
}

/* Stack the two layers exactly on top of each other */
.text-swap-onload .swap-layer {
    display: inline-block;
    white-space: nowrap;
}
/* Keep the front layer in-flow to define container width; back layer is absolute on top */
.text-swap-onload .swap-front {
    position: relative;
    z-index: 2;
    display: inline-block;
}
.text-swap-onload .swap-back {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    pointer-events: none;
    display: inline-block;
}
.text-swap-onload .char {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
}
.text-swap-onload .char span {
    display: inline-block;
    transform: translateY(0);
    will-change: transform, opacity;
}
.text-swap-onload .swap-back .char span {
    transform: translateY(100%);
}

/* Styles pour l'animation text-fade-blur */
.text-fade-blur {
    margin: 0.5em 0;
}
.text-fade-blur .word {
    display: inline-block;
    margin-right: 0.5em;
    opacity: 0;
}

/* Styles pour l'animation text-3d-rotation */
.text-3d-rotation {
    margin: 0.5em 0;
    font-weight: bold;
}
.text-3d-rotation .char {
    display: inline-block;
    transform-style: preserve-3d;
    backface-visibility: hidden;
}

/* HIDE SCROLLBAR */
.hide-scrollbar {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

/* LENIS SCROLL SETTINGS*/
html.lenis, html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto!important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-smooth iframe {
    pointer-events: none;
}
/* VIEW TRANSITION */
@view-transition{
    navigation: auto;
}
::view-transition-old(root){
    animation: 1.5s cubic-bezier(0.87, 0, 0.13, 1) both move-out;
}
::view-transition-new(root){
    animation: 1.5s cubic-bezier(0.87, 0, 0.13, 1) both move-in;
}
@keyframes move-out {
    from{
        opacity: 1;
        transform: translateY(0);
    }
    to{
        opacity: 0.5;
        transform: translateY(-35%);
    }
}
@keyframes move-in {
    from{
        clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
    }
    to{
        clip-path: polygon(0 100%, 100% 100%, 100% 0%, 0 0%);
    }
}

/* Portfolio → Single dedicated View Transition */
/* When we flag the html with .vt-portfolio, cancel the default root transition
   and rely on the shared element named `project-video` to animate across pages. */
html.vt-portfolio::view-transition-old(root),
html.vt-portfolio::view-transition-new(root) {
    animation: none !important;
}

/* Elevate the shared element so it animates above content without flicker */
::view-transition-group(project-video) {
    z-index: 1000;
}
::view-transition-image-pair(project-video) {
    isolation: isolate;
}
::view-transition-new(project-video),
::view-transition-old(project-video) {
    animation-duration: 520ms;
    animation-timing-function: cubic-bezier(0.87, 0, 0.13, 1);
}

/* Don’t let non-selected media participate by default; we set inline styles on click */
.portfolio-video,
.portfolio-item img {
    view-transition-name: none;
}

/* MEDIA QUERIES SAMPLES */
@media (max-width: 2560px) {
}
@media (max-width: 1920px) {
}
@media (max-width: 1600px) {
    body{
        --container-space : 5vw;
    }
}
@media (max-width: 1200px) {
}
@media (max-width: 1024px) {
}
@media (max-width: 768px) {
    body{
        --container-space : 1.33em;
    }
}
@media (max-width: 576px) {   
}