html, body {
    width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 0;
    overflow: hidden;
}
.frame-container {
  position: absolute; 
  top: 100px; /* Distance from the top of the page */
  left: 50px; /* Distance from the left of the page */
  z-index: 10; /* Ensures it stacks on top of other elements */
  /* Dimensions of your PNG frame */
  width: 446px;
  height: 559px;
  
  /* Set your PNG frame here */
  background-image: url('images/purple_frame_bow.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  
  /* Flexbox centers the subsection box inside the container */
  display: flex;
  justify-content: center;
  align-items: center;
  
  /* Padding keeps the inner box safely inside the PNG borders 
     (adjust these values based on your specific PNG's frame thickness) */
  padding: 105px 85px; 
  box-sizing: border-box;
}

.subsection-box {
  /* Styling for the inside box */
  background: rgba(255, 255, 255, 0.9); /* Semi-transparent background */
  padding: 20px;
  border-radius: 8px;
  width: 100%;
  height: 100%;
  overflow-y: auto; /* Adds a scrollbar if content is too long */
  
  /* Typography */
  color: #333;
  font-family: sans-serif;
}
/* === Typography Styles === */
h1 { 
    font-family: "Princess Sofia", cursive;
    color: white;
}
h2 {
    font-family: "Barrio", system-ui;
    color: black;
}
p {
    font-family: "Princess Sofia", cursive;
    color: white;
}

/* === Global & Background Styles === */
body {
    background-color: #F8E5FF;
    background-image: url('images/purple_and_black_background.png');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
}

/* Custom Cursors */
* {
    cursor: url('https://cdn.cursors-4u.net/previews/treble-clef-75bd9f1e-32.webp') 32 32, auto !important;
}

a, button {
    cursor: url('https://cdn.cursors-4u.net/css-previews/singing-heart-22e1143a-css.webp') 0 0, pointer !important;
}

/* === Layout & Containers === */
.main-content {
    width: 65%;
    float: left;
    padding-right: 20px;
}

.side-cite-box {
    width: 20%;
    float: right;
    padding: 15px;
    background-color: #f9f9f9;
    border-left: 8px solid #49364F;
    font-style: italic;
    font-size: 0.95em;
}

.clearfix::after {
    content: "";
    clear: both;
    display: table;
}

/* === Scroll Container & Links === */

.scroll-container { 
  height: 150px; 
  width: 350px; 
  overflow-y: auto; 
  /* Removed padding: 10px; */
  box-sizing: border-box; /* Ensures border/padding stay inside the 350px width */
} 

.scroll-container ul { 
  list-style: none; 
  padding: 10px; /* This handles the internal spacing perfectly */
  margin: 0; 
}
.scroll-container li {
    margin-bottom: 10px;
}

.scroll-container a {
    display: block;
    padding: 0px;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    text-decoration: none;
    color: #2596be; 
    font-size: 14px;
    font-weight: 500;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.scroll-container a:hover {
    background-color: #f1f1f1;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

/* === gif positions === */
.bottom-right-cd {
  position: absolute;
  bottom: -450px; /* Distance from the bottom of the screen */
  right: -30px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 800px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
  opacity: 0.7; 
}

.surrounding-stars {
  position: absolute;
  top: 90px; /* Distance from the bottom of the screen */
  left: 50px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 100px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}
.petes-music {
  position: absolute;
  bottom: 160px; /* Distance from the bottom of the screen */
  left: 180px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 40px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}
.electropop-blinker {
  position: absolute;
  top: 375px; /* Distance from the bottom of the screen */
  right: 20px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 200px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}
.backbutton {
  position: absolute;
  top: 10px; /* Distance from the bottom of the screen */
  right: 30px;  /* Distance from the right side of the screen */
  z-index: 9999; 
  width: 50px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}
.cd-player {
  position: absolute;
  top: 50px; /* Distance from the bottom of the screen */
  left: 750px;  /* Distance from the right side of the screen */
  z-index: 9999; 
  width: 600px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}
.cdtext {
  position: absolute;
  top: 320px; /* Distance from the bottom of the screen */
  right: 500px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 400px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}


.repeats-music-gif {
  position: absolute;
  top: 80px; /* Distance from the bottom of the screen */
  right: 300px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 100px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}

.cd-gif {
  position: absolute;
  top: 280px; /* Distance from the bottom of the screen */
  right: 670px;  /* Distance from the right side of the screen */
  z-index: 9999; /* Ensures the GIF stays on top of other content */
  width: 50px;  /* Adjust the size of the plot as needed */
  height: auto;  /* Maintains the aspect ratio */
}


.ipod-container {
    position: absolute;
    top: 300px;
    right: 1000px;
    z-index: 9999;
    width: 300px; /* Adjust total width of the iPod asset */
    height: auto;
}

.ipod-frame {
    width: 100%;
    height: auto;
    display: block;
}

.ipod-screen {
    position: absolute;
    /* Adjust these percentages until the video fits your specific screen area */
    top: 95px;       
    left: 15px;       
    width: 50%;     /* Limits video to the left side */
    height: 110px;    
    
    object-fit: cover; /* Prevents video distortion */
    z-index: 10000;    /* Sits on top of the frame */
}
.sticker-link {
  position: fixed;
  top: 315px;
  left: 935px;
  z-index: 9999;
  
  /* Add rotation */
  transform: rotate(14deg);
  
  /* Optional sticker styling */
  background-color: #FFB6C1;
  color: white;
  padding: 10px 24px;
  border-radius: 80px;
  text-decoration: none;
  font-family: sans-serif;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}

.sticker-link:hover {
  background-color: #AA336A;
}

          
/* === Background Text animation === */ 
@font-face { 
  font-family: 'Princess Sofia'; 
  src: url('https://garet.typeforward.com/assets/fonts/shared/TFMixVF.woff2') format('woff2'); 
  font-weight: 100 900; 
} 

body.breathe-animation { 
  position: relative; /* Changing from flex to relative handles absolute children */
  background-color: transparent; 
  height: 500px; 
} 

.breathe-animation span { 
  position: absolute; /* Allows exact pixel placement */
  bottom: 50px;          /* Change 50px to your desired top distance */
  right: 100px;        /* Change 100px to your desired left distance */
  
  font-family: 'Princess Sofia', cursive; 
  font-size: clamp(100px, 200px, 500px); 
  color: white; 
  text-align: center; 
  animation: letter-breathe 3s ease-in-out infinite; 
} 

@keyframes letter-breathe { 
  from, to { font-weight: 100; font-variation-settings: 'wght' 100; } 
  50% { font-weight: 900; font-variation-settings: 'wght' 900; } 
}

/* === Card Container for Fav Album === */
.card {
  width: 100px;
  height: 100px;
  margin: 1rem auto;
  perspective: 1000px; /* Required for 3D space */
  cursor: pointer;
  position: absolute;
  bottom: 475px;
  left: 150px;
  z-index: 9999;
}

/* === Card Inner Wrapper === */
.card-inner {
  position: relative; 
  width: 100%;
  height: 100%;
  transition: transform 0.6s ease;
  transform-style: preserve-3d; /* Required to keep front and back in 3D */
}

.card:hover .card-inner {
  transform: rotateY(180deg);
}

/* === Card Faces === */
.card-front, .card-back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden; /* Hides the backside when flipped */
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  color: black;
  text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
  font-weight: bold;
  font-size: 0.6rem;
}

.card-front {
  background-image: url('gifs/sparkle_hearts.gif');
  background-size: cover;
  background-position: center;
}

.card-back {
  background-image: url('images/FMacRumours.png');
  background-size: cover;
  background-position: center;
  transform: rotateY(180deg); /* Pre-rotates the back face */
}

/* === Card Container for Fav Genres === */
.card1 {
  width: 100px;
  height: 100px;
  margin: 1rem auto;
  perspective: 1000px; /* Required for 3D space */
  cursor: pointer;
  position: absolute;
  bottom: 350px;
  left: 150px;
  z-index: 9999;
}

/* === Card Inner Wrapper === */
.card1-inner {
  position: relative; 
  width: 100%;
  height: 100%;
  transition: transform 0.6s ease;
  transform-style: preserve-3d; /* Required to keep front and back in 3D */
}

.card1:hover .card1-inner {
  transform: rotateY(180deg);
}

/* === Card Faces === */
.card1-front, .card1-back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden; /* Hides the backside when flipped */
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  color: black;
  text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
  font-weight: bold;
  font-size: 0.6rem;
}

.card1-front {
  background-image: url('https://i.pinimg.com/originals/6e/32/a3/6e32a3194cbabc9973d151bb18a9e1da.gif');
  background-size: cover;
  background-position: center;
}

.card1-back {
  background-image: url('images/pop_music_logo.jpg');
  background-size: cover;
  background-position: center;
  transform: rotateY(180deg); /* Pre-rotates the back face */
}

/* === Card Container for Fav Artist === */
.card2 {
  width: 100px;
  height: 100px;
  margin: 1rem auto;
  perspective: 1000px; /* Required for 3D space */
  cursor: pointer;
  position: absolute;
  bottom: 475px;
  left: 275px;
  z-index: 9999;
}

/* === Card Inner Wrapper === */
.card2-inner {
  position: relative; 
  width: 100%;
  height: 100%;
  transition: transform 0.6s ease;
  transform-style: preserve-3d; /* Required to keep front and back in 3D */
}

.card2:hover .card2-inner {
  transform: rotateY(180deg);
}

/* === Card Faces === */
.card2-front, .card2-back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden; /* Hides the backside when flipped */
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  color: black;
  text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
  font-weight: bold;
  font-size: 0.6rem;
}

.card2-front {
  background-image: url('https://i.pinimg.com/originals/4a/f2/52/4af252a87dd463a21c85cc155bac30af.gif');
  background-size: cover;
  background-position: center;
}

.card2-back {
  background-image: url('images/charlie_xcx.jpg');
  background-size: cover;
  background-position: center;
  transform: rotateY(180deg); /* Pre-rotates the back face */
}

/* CSS Styling for blinkie scroller*/

.blinkie-scroller {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 9999; /* Keeps it on top of other images and text */
  width: 100%;
  overflow: hidden;
  border: 0px double #ff00ff; /* Retro double border */
  background: #000;
  padding: 5px 0;
}

.blinkie-track {
  display: flex;
  width: max-content;
  gap: 10px; /* Space between blinkies */
  animation: scrollLinear 5s linear infinite;
}

/* Pause scrolling on hover so users can see them */
.blinkie-track:hover {
  animation-play-state: paused;
}

@keyframes scrollLinear {
  0% {
    transform: translateX(0);
  }
  100% {
    /* Moves exactly halfway through the duplicated track */
    transform: translateX(-50%); 
  }
}
