
/* ------------------ CSS RESET ---------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  height: auto;
  max-width: 100%;
}

html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6 {
  margin: 0;
  padding: 0;
}

h1,h2,h3,h4,h5,h6 {
  font-size: 100%;
  font-weight: normal;
}

input,button,textarea,select {
  font: inherit;
  margin: 0;
}

iframe {
  border: 0;
}

::-moz-selection {
  /* Code for Firefox */
  color: var(--backgroundcolor);
  background: var(--fontcolor);
}

::selection {
  color: var(--backgroundcolor);
  background: var(--fontcolor);
}

html {
  width: 100%; height: 100%;
  scroll-behavior: smooth;
  box-sizing: border-box;
  --spacing:1rem;
  --spacingsmall: 0.5rem ;
  --backgroundcolor: #131212 ;
  --maincolor: #640000;
  --secondcolor: #D23A3A ; 
  --fontcolor: #B5AEAC ;
  --detailcolor: #8A8484 ;
  --linecolor: #4A4848 ;
}

body{
    background-color: var(--backgroundcolor);
    color: var(--fontcolor);
    font-family: 'inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

@font-face {
    font-family: 'inter';
    src: url(../fonts/inter.woff2) format("woff2"), url(../fonts/inter.ttf) format("truetype"), url(../fonts/inter.otf) format("opentype");
    font-display: swap;
    font-weight: 100 900; /* un seul fichier (Inter SemiBold) : pas de faux gras */
}

section{
    margin: var(--spacing);
}

.mobile{
    display: block;
}

.laptop{
    display: none;
}

.hidden{
    display: none;
}


/* --------------------------------------------------------------------------------------------------------------------- */
/* |                                                RELEASE PAGE                                                        |
/* --------------------------------------------------------------------------------------------------------------------- */



h1{font-size: 60px;}

h2{font-size: 8vw;}

h3{font-size: 30px;margin:0;}

p{
font-size: 3.3vw;
max-width: 50ch;
line-break:strict;
word-wrap: break-word;
}

a{
    color: var(--secondcolor);
    text-decoration: none;
}

a:hover{
    text-decoration: underline;
    transition: 0.2s;
}

#page{
    height: 100vh;
    /* overflow: hidden; */
    scroll-snap-type: y mandatory;
}

#header{
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--spacing);
}

#listening{
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 4vw;
}

#data{
    display: flex;
    flex-direction: column;
    gap: var(--spacing);
    overflow-y: auto;
    width: 100%;
    height: 100%;
    contain: size;
}

.releasecover{
cursor: zoom-in;
box-shadow: 3px 4px 5px 0px rgba(0,0,0,0.12);
-webkit-box-shadow: 3px 4px 5px 0px rgba(0,0,0,0.12);
-moz-box-shadow: 3px 4px 5px 0px rgba(0,0,0,0.12);
}

.releasedescription p {
    margin-bottom: var(--spacing);
}

/* MARCHE PAS pour l'instant */
/* #data::after{
content: "";
z-index: 999;
height: 50px;
box-shadow: 0px -30px 20px 3px rgba(255, 255, 255, 0.75);
-webkit-box-shadow: 0px -30px 20px 3px rgba(255, 255, 255, 0.75);
-moz-box-shadow: 0px -30px 20px 3px rgba(255, 255, 255, 0.75);
} */


.release-menu{
    display: flex;
    flex-direction: row;
    justify-content: space-around;
}

.icon{
    width: 20px;
    height: 20px;
    vertical-align: middle;
    background: var(--secondcolor);
    background-position: center;
    mask-position: center;
    mask-repeat: no-repeat;
    cursor: pointer;
}

.share {
    mask-image: url(../img/copy.svg);
}

#download {
    mask-image: url(../img/download.svg);
}

.goback {
    mask-image: url(../img/arrow.svg);
    transform: rotate(90deg);
}

.splashscreen{
    position: fixed;
    top: 0%;
    bottom: 0%;
    left: 0%;
    right: 0%;
    opacity: 50%;
    z-index: 998;
    background-color: var(--backgroundcolor);
    cursor: zoom-out;
}

#splashcover{
    z-index: 999;
    position: fixed;
    max-width: 80vh;
    margin: auto;
    bottom: 8vh;
    top: 0;
    left: 0;
    right: 0;
    width: 80vw;
    box-shadow: 3px 4px 5px 0px rgba(0,0,0,0.12);
    -webkit-box-shadow: 3px 4px 5px 0px rgba(0,0,0,0.12);
    -moz-box-shadow: 3px 4px 5px 0px rgba(0,0,0,0.12);
}

/* ----------------- TRACKS PLAYERS STYLING ------------------ */

#tracks{
    overflow-y: auto;
    height: 20vh;
    transition: 0.2s;
}

.unwrap-container{
    width: 100%;
    display: flex;
    justify-content: center;
}

#tracks-unwrap{
    cursor:cell;
    z-index: 997;
/* fade out pour la tracklist mais buggé quand on unwrap sur certaines hauteurs d'écrans*/
/* box-shadow: 0px -30px 20px 3px rgba(255, 255, 255, 0.75);
-webkit-box-shadow: 0px -30px 20px 3px rgba(255, 255, 255, 0.75);
-moz-box-shadow: 0px -30px 20px 3px rgba(255, 255, 255, 0.75); */
}

.rotated{
    transform: rotate(180deg);
}

.track{
    display: flex;
    flex-direction: row;
    gap: var(--spacing);
    justify-content: space-between;
    margin-right: var(--spacing);
    margin-bottom: var(--spacingsmall);
}

.track-main{
    width: 100%;
    display: flex;
    flex-direction: column;
}

.track-name{
    display: flex;
    flex-direction: row;
    gap: var(--spacingsmall);
}

.track-data{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.track-duration{
    margin-left: var(--spacingsmall);
}

div.control{
    cursor: pointer;
    width: 40px;
    height: 40px;
 }

div.amplitude-play-pause.amplitude-paused {
    background: var(--secondcolor);
    background-position: center;
    mask-image: url(../img/play.svg);
    mask-position: center;
    mask-repeat: no-repeat;
}

div.amplitude-play-pause.amplitude-playing {
    background: var(--secondcolor);
    background-position: center;
    mask-image: url(../img/pause.svg);
    mask-position: center;
    mask-repeat: no-repeat;
 }

.progress-wrapper{
    cursor: pointer;
    padding-bottom: 6px;
    margin-bottom: -6px;
}


/* ----------------- BOTTOM PLAYER ------------------ */

#bottomplayer{
    position: fixed;
    z-index: 999;
    bottom: 0;
    left: 0;
    right: 0;
    box-shadow: 1px 5px 13px 10px rgba(0,0,0,0.12);
    -webkit-box-shadow: 1px 5px 13px 10px rgba(0,0,0,0.12);
    -moz-box-shadow: 1px 5px 13px 10px rgba(0,0,0,0.12);
}

progress.amplitude-song-played-progress {
  background-color: var(--secondcolor);
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 3px;
  display: block;
  cursor: pointer;
  border: none;
  margin-top: var(--spacingsmall);
}

progress[value]::-moz-progress-bar {
  background-color: var(--maincolor); }

progress[value]::-webkit-progress-value {
  background-color: var(--maincolor); }

#current-song-played-progress{
    background-color: var(--backgroundcolor);
    margin-top: 0;
    height: 12px;
}

#current-song-played-progress[value]::-moz-progress-bar {
  background-color: var(--secondcolor); }

#current-song-played-progress[value]::-webkit-progress-value {
  background-color: var(--secondcolor); }

#bottomplayer-background{
    display: flex;
    gap: var(--spacing);
    justify-content: space-between;
    background-color: var(--maincolor);
    color: white;
    height: 8vh;
    align-items: center;
}

#controls{
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-left: var(--spacing);
    gap: var(--spacing) ;
    /* justify-content: space-around; */
}

#left-align{
    display: flex;
    flex-direction: row;
    gap: var(--spacing);
}

div#play-pause-bottom.amplitude-paused {
    background: white;
    background-position: center;
    mask-image: url(../img/play.svg);
    mask-position: center;
    mask-repeat: no-repeat;
}

div#play-pause-bottom.amplitude-playing {
    background: white;
    background-position: center;
    mask-image: url(../img/pause.svg);
    mask-position: center;
    mask-repeat: no-repeat;
 }

div.amplitude-prev {
    background: white;
    background-position: center;
    mask-image: url(../img/previous.svg);
    mask-position: center;
    mask-repeat: no-repeat;
}

div.amplitude-next {
    background: white;
    background-position: center;
    mask-image: url(../img/next.svg);
    mask-position: center;
    mask-repeat: no-repeat;
}

#song-data{
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}   

.song-name, .song-artist-album{
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.time-container{
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-right: var(--spacing);
}



/* ----------------- CANVAS ------------------ */

#canvas{
    margin: 0;
    position: relative;
}   

.arrow {
    width: 30px;
    height: 30px;
    cursor: pointer;
    background: var(--secondcolor);
    background-position: center;
    mask-image: url(../img/arrow.svg);
    mask-position: center;
    mask-repeat: no-repeat;
}

#exit-canvas{
    position: fixed;
    bottom: 10vh;
    right: 0;
    margin-bottom: var(--spacing);
    margin-right: var(--spacing);
}










/* ----------------- MEDIA QUERIES ------------------ */

/* On est mobile first ici donc les media queries sont utilisées pour les laptops */

@media screen and (min-width:600px) {
p{
font-size: 2vw;
}
}

@media screen and (min-width:1000px) {

.mobile{display: none;}
.laptop{display: block;}

h1{font-size: 50px;}

h2{font-size:40px;}

h3{font-size: 30px;margin:0;}

p{
font-size: 17px;
max-width: 50ch;
line-break:strict;
}



/* LAPTOP LAYOUT */

#page{
    display: grid;
    grid-template-columns: 1fr 2fr;
}

#header{
    display: flex;
    flex-direction: column;
}

#data{
    gap: calc(var(--spacing)*2);
    contain:unset;
    overflow-y: visible;
    height: auto;
}

.mobilegrid{
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.release-menu{
    display: flex;
    flex-direction: column;
    align-items: end;
    gap: var(--spacing);
    margin-right: var(--spacing);
}

#tracks{
    overflow-y: unset;
    height: auto;
    margin-bottom: calc(var(--spacing)*5);
}
.track{
    margin-bottom: var(--spacing);
    margin-right: var(--spacing);
}

#left-align{
    gap: calc(var(--spacing)*2);
}

}


@media screen and (min-width:1200px) {
.release-menu{
    flex-direction: row;
    justify-content: flex-end;
}
}

/* Description sous la tracklist */
#description-below{
    margin-right: var(--spacing);
}


/* ----------------- TEXTES DE DÉTAIL ------------------ */
.releasedescription, .releasedescription p,
#data p, .track-duration, .track-name .number{
    color: var(--detailcolor);
}

/* barre de progression des morceaux : fond discret, avancement en accent */
progress.amplitude-song-played-progress{
    background-color: var(--linecolor);
}
#current-song-played-progress{
    background-color: var(--backgroundcolor);
}

/* texte du lecteur en bas de page */
#bottomplayer-background{
    color: var(--fontcolor);
}


/* ----------------- BARRE DE DÉFILEMENT ------------------ */
* {
    scrollbar-color: #000000 var(--backgroundcolor);
    scrollbar-width: thin;
}
::-webkit-scrollbar{ width: 8px; height: 8px; background: var(--backgroundcolor); }
::-webkit-scrollbar-track{ background: var(--backgroundcolor); }
::-webkit-scrollbar-thumb{ background: #000000; border-radius: 4px; }
::-webkit-scrollbar-button{ display: none; }


/* ----------------- FOOTER ------------------ */
.site-footer{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.4rem 0.6rem;
    margin-top: calc(var(--spacing)*3);
    padding: var(--spacing) var(--spacing) 120px;
    border-top: 1px solid var(--linecolor);
    color: var(--detailcolor);
    font-size: 13px;
}
.site-footer a{ color: var(--detailcolor); }
.site-footer a:hover{ color: var(--fontcolor); }


/* ----------------- MOBILE (< 1000px) : une seule page qui défile ------------------ */
@media screen and (max-width: 999px) {
    #page { height: auto; scroll-snap-type: none; }
    #listening {
        overflow: visible;
        padding: 16px 16px 0;
        gap: 24px;
    }
    #header { grid-template-columns: 110px 1fr; gap: 14px; align-items: end; }
    #data { overflow: visible; height: auto; contain: none; }
    #data h2, #data h1 { font-size: 26px; line-height: 1.1; }
    #data p { font-size: 14px; max-width: none; }
    p { font-size: 15px; max-width: none; }

    /* tracklist complète, sans boîte qui défile */
    #tracks { height: auto !important; overflow: visible; }
    .unwrap-container { display: none; }
    .track { margin-right: 0; margin-bottom: 14px; align-items: center; }
    .track-name, .track-duration { font-size: 15px; }
    div.control { width: 36px; height: 36px; flex: 0 0 36px; }

    #description-below { margin-right: 0; }
    .releasedescription p { font-size: 14px; }

    /* nuage d'images sous la page */
    /* même hauteur que le rendu 3D (window.innerHeight) : pas de débordement sur le footer */
    #canvas { height: 100vh; overflow: hidden; }

    /* le lecteur fixe ne cache pas le bas de page */
    .site-footer { padding-bottom: calc(8vh + 40px); }
    #bottomplayer-background { min-height: 64px; padding: 0 12px; }
    #song-data { min-width: 0; }
}

/* ----------------- STREAM ONLINE HERE : bloc noir collé sous la tracklist, mots calés bord à bord ------------------ */
#tracks .track:has(+ .stream-justify) { margin-bottom: 0; }
.stream-justify {
    display: flex;
    justify-content: space-between;
    /* bandeau bord à bord : on sort des marges de la colonne */
    box-sizing: border-box;
    width: calc(100% + 2 * var(--spacing));
    margin: 14px calc(-1 * var(--spacing));
    padding: 0;
    background: #000;
    color: var(--fontcolor);
    text-decoration: none;
    text-transform: lowercase;
    font-weight: 600;
    font-size: 17px;
    line-height: 44px;
    letter-spacing: 0;
    transition: color .2s;
}
.stream-justify:hover { color: var(--secondcolor); text-decoration: none; }
/* ordi : la colonne a une marge de 16px -> transformée en padding pour que le bandeau ne crée pas de défilement horizontal */
@media screen and (min-width: 1000px) {
    #listening { margin: 0; padding: var(--spacing); }
    /* supprime le grand vide sous la tracklist sur PC */
    #tracks { margin-bottom: 0; }
    .unwrap-container { display: none; }
    /* espace sous le bandeau = espace au-dessus (~33px) : on annule l'espacement auto de la colonne (4vw) */
    #tracks:has(.stream-justify) ~ #description-below { margin-top: calc(19px - 4vw); }
}
/* mobile : marge de page (16px) + padding (16px) = 32px de chaque côté -> bandeau sur toute la largeur de l'écran */
@media screen and (max-width: 999px) {
    .stream-justify { width: calc(100% + 64px); margin: 14px -32px; }
}


/* ----------------- TITRE DE LA SORTIE EN H1 : même rendu que l'ancien h2 ------------------ */
#data h1 { font-size: 8vw; }
@media screen and (min-width:1000px) {
    #data h1 { font-size: 40px; }
}
@media screen and (max-width: 999px) {
    #data h1 { font-size: 26px; line-height: 1.1; }
}

/* ----------------- BOUTON PARTAGE (button au lieu de div) : rendu identique ------------------ */
button.icon {
    -webkit-appearance: none;
    appearance: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    display: inline-block;
}
.icon:focus-visible, [role="button"]:focus-visible { outline: 2px solid var(--secondcolor); outline-offset: 3px; }

/* ----------------- MESSAGE DISCRET (toast) ------------------ */
.toast {
    position: fixed;
    left: 50%;
    bottom: calc(8vh + 24px);
    transform: translate(-50%, 10px);
    z-index: 1000;
    padding: 10px 16px;
    background: #000;
    color: var(--fontcolor);
    font-size: 13px;
    text-transform: lowercase;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s, transform .2s;
}
.toast.visible { opacity: 1; transform: translate(-50%, 0); }

/* ----------------- MENTION PRESSE ------------------ */
.press-mention { color: var(--detailcolor); font-size: 14px; margin: 0; }
.press-mention a { color: var(--fontcolor); text-decoration: underline; }
.press-mention a:hover { color: var(--secondcolor); }


/* ----------------- FOOTER : colonne de gauche sur ordi, tout en bas (sous le nuage) sur mobile ------------------ */
.footer-mobile { display: none; }
@media screen and (max-width: 999px) {
    .footer-desktop { display: none; }
    .footer-mobile { display: flex; margin: 0 var(--spacing); position: relative; z-index: 2; }
}


/* ----------------- MORE RELEASES (bas de page de sortie) ------------------ */
.more-releases { margin-top: calc(var(--spacing) * 2); }
.more-releases .more-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--detailcolor);
    margin-bottom: var(--spacingsmall);
}
.more-releases ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.more-releases a { display: flex; flex-direction: column; gap: 4px; color: var(--fontcolor); text-decoration: none; }
.more-releases a:hover { color: var(--secondcolor); text-decoration: none; }
.more-releases img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; transition: filter .3s; }
.more-releases a:hover img { filter: brightness(.8); }
.more-name { font-size: 13px; line-height: 1.25; }
.more-type { font-size: 11px; color: var(--detailcolor); text-transform: uppercase; letter-spacing: .04em; }