/* Centered 900px container */body {    font-family: 'Edwardian Script ITC', cursive;    color: #6b4c4c;    margin: 0;    padding: 0;    background: #fffde6;}.container {  max-width: 900px;  width: 90%;  margin: 0 auto;  background-image: url('https://stefftest.neocities.org/IMG_2763.JPG');  background-size: 100%;  position: relative;  display: flex;  flex-direction: column;  min-height: 0;  overflow-x: visible;  overflow-y: hidden;  justify-content: center;}@media (max-width: 768px) {  .container {    background-size: 150%; /* zoom in 1.5x */    background-position: center; /* keep it centered */  }}/* Gradient vertical borders on left + right */.container::before,.container::after {  content: "";  position: absolute;  top: 0;  bottom: 0;  width: 7px;}.container::before {  left: 0;  background: linear-gradient(to right, #ffaab5, white, #ffaab5);  z-index: 15; /* on top of everything */}.container::after {  right: 0;  background: linear-gradient(to left, #ffaab5, white, #ffaab5);  z-index: 15; /* on top of everything */}/* Banner on top */.header {    width: 100%;    max-width: 900px;    position: relative;    height: 120px;    text-align: center;    padding: 20px 0;    overflow: visible;  /* critical: allow content to escape */    z-index: 12;}.teddy-bear {    width: 200px;    position: absolute;    left: -30px;    bottom: -25px;    transform: rotate(16deg);    z-index: 20;          /* higher than scroll box (10) */}.header-logo {  width: 300px;  max-width: 80%;  position: absolute;  left: 50%;  top: 50%;  transform: translate(-50%, -50%); /* center both horizontally and vertically */  cursor: pointer;}.pincushion {    width: 180px;    margin-top: 20px;    position: absolute;    right: 10px;    bottom: 0px;    transform: none;      filter:     drop-shadow(0 0 3px #C23D2B)    drop-shadow(0 0 5px #C23D2B)    drop-shadow(0 0 10px white);  box-shadow: 0 0 0px rgba(255, 182, 193, 0.4);  transition: filter 0.3s ease;}.pincushion:hover {  transition: 0s ease;  filter:     drop-shadow(0 0 3px pink)    drop-shadow(0 0 5px pink)    drop-shadow(0 0 10px white);}@media (max-width: 500px) {    .teddy-bear {        width: 140px;        left: -20px;        bottom: -15px;        transform: rotate(0deg);    }    .header-logo {        width: 270px;}    .pincushion {        width: 130px;        right: -5px;        bottom: -20px;    }}.scroll-box {  width: 100%;  max-width: 900px;  height: 30px;  overflow-x: hidden;  /* hide horizontal scrollbar */  overflow-y: visible; /* allow vertical overflow if needed */  background: linear-gradient(to bottom, #ffaab5, white, #ffaab5);  display: flex;  align-items: center;  box-shadow: 0 4px 6px rgba(0,0,0,0.2);   z-index: 10;}.scroll-wrapper {  display: flex;  width: max-content;  animation: scroll 20s linear infinite;}.scrolling-image {  height: 40px;   /* smaller than the scroll box */  width: auto;    /* maintain aspect ratio */  margin-right: 400px;  overflow: visible;}@keyframes scroll {  from { transform: translateX(0%); }  to   { transform: translateX(-50%); }}.scroll-box::-webkit-scrollbar {  display: none;  /* hide scrollbar in WebKit browsers (Chrome, Safari) */}/* Sidebar + main next to each other */.content {  display: flex;  align-items: stretch;  position: relative;  min-height: 700px;}/* Gradient divider between sidebar + main */.content::before {  content: "";  position: absolute;  top: 0;  bottom: 0;  left: 180px; /* matches sidebar width */  width: 7px;  background: linear-gradient(to right, #ffaab5, white, #ffaab5);  z-index: 10; /* on top of everything */}/* Sidebar */.sidebar {  flex: 0 0 180px;  box-sizing: border-box;  background: light pink;  margin: 7 0 0 0;/* left padding increased from 10px → 15px */  z-index: 2;}/* Search bar flush to edges */.search-bar {  position: relative;  width: 100%;            /* full width of sidebar */  margin: 0 0 20px 0;       /* no margin */  height: 35px;  display: flex;  border: 1px solid #ccc;  background: white;  border-radius: 0;       /* no rounding */}/* Input fills space, leaves room for button */.search-bar input {  flex: 1;  border: none;  padding: 0 10px;  height: 100%;  box-sizing: border-box;  outline: none;  padding-right: 40px;     /* space for circular button */  border-radius: 0;  margin: 0;    font-family: "Times New Roman", Times, serif;  /* change to any font */  font-size: 16px;      /* adjust size */  font-style: italic;   /* optional */  color: #333;          /* text color */}/* Circular pink button flush right */.search-bar button {  position: absolute;  right: 2px;               /* flush right */  top: 50%;  transform: translateY(-50%);  width: 30px;  height: 30px;  border: none;  border-radius: 50%;  background: #ffc0cb;  cursor: pointer;  display: flex;  align-items: center;  justify-content: center;  z-index: 10;}.search-bar button svg {  width: 16px;  height: 16px;  stroke: #fff;}.nav-buttons {    list-style: none;    padding-left: 8px;    margin: 0;    display: flex;    flex-direction: column;    align-items: center;}.nav-buttons li {    margin-bottom: 10px;}.nav-buttons a {    display: flex;                 /* center text */    justify-content: center;       /* horizontal center */    align-items: center;           /* vertical center */    width: 160px;                  /* 80% of 200px sidebar */    height: 35px;                 /* taller for ellipse shape */    border-radius: 50%;            /* makes it a true ellipse */    text-align: center;    text-decoration: none;    color: #FF83a0;    font-size: 18px;    font-family: "Times New Roman", Times, serif;    font-style: italic;    padding: 0;                    /* keep shape consistent */    background: linear-gradient(        to bottom,        #ffffff 0%,        #ffddde 70%,        #ffc0cb 90%    );    border: 2px solid #fa8fa1;    box-shadow:         2px 2px 5px rgba(0,0,0,0.1),        inset 2px 3px 2px #FACDD1,        inset 4px 5px 2px rgba(255, 255, 255, 0.6),               inset -2px -3px 2px rgba(110, 11, 17, 0.15);    text-shadow: 1px 1px 2px rgba(120, 0, 0, 0.15);    transition:         font-size 0s ease,         color 0s ease,         background 0s ease,         text-shadow 0s ease;}.nav-buttons a:hover {    background: linear-gradient(to bottom, #FFC7D5, #FF9EB6);    box-shadow: 0 0 13px 5px rgba(255, 255, 255, 1.5), 2px 2px 5px rgba(0,0,0,0.1),            inset 2px 3px 4px rgba(255, 255, 255, 0.6), /* highlight top-left */        inset -2px -3px 4px rgba(0, 0, 0, 0.15); color: #FBEAED;    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);  /* shadow bottom-right */}.choco {    display: block;         /* ensures margin auto works */    margin: 3px 10% 3px 12%;    /* top 0, bottom 15px spacing */    width: 80%;    max-width: 180px;      height: auto;           /* maintain aspect ratio */}.page-counter {  display: flex;  justify-content: center;  /* center row */  gap: 0px;               /* spacing between hearts */  margin: 0 8% 0px 11%;          /* optional spacing */}.heart {  width: 30px;             /* adjust as needed */  height: 30px;  flex: 0 0 auto;  background: url('heart.png') no-repeat center/cover;  display: flex;  align-items: center;  justify-content: center;  font-family: "Times New Roman", Times, serif;  font-weight: bold;  font-size: 15px;  color: white;  text-align: center;  line-height: 0;       /* centers number vertically *//* fixed font size */   cursor: pointer;  user-select: none;  transition: transform 0.2s;}.heart:hover {  transform: scale(1.1);  /* optional hover effect */}.header{  position: relative; /* container for pseudo-element */  background: linear-gradient(to bottom, #fff9e6, #ffffff); /* main gradient */  overflow: visible; /* ensures pseudo-element stays inside */}.sidebar {  position: relative; /* container for pseudo-element */  background: linear-gradient(to bottom, #fff9e6, #ffffff); /* main gradient */  overflow: hidden; /* ensures pseudo-element stays inside */}@media (max-width: 768px) {    /* Hide the gradient divider when sidebar collapses */    .content::before {        display: none;    }}.header::after,.sidebar::after {  content: "";  position: absolute;  top: 0; left: 0; right: 0; bottom: 0;  pointer-events: none; /* allow clicks through */  background-image: radial-gradient(circle, #ffc0cb 2px, transparent 2px); /* 2px dots */  background-size: 10px 10px; /* closer spacing */  z-index: -1; /* keep behind content but above gradient */}.responsive-wrapper {  width: 100%;  display: flex;  justify-content: center; /* center main horizontally */}/* Scale main for screens smaller than 900px, but above mobile (450px) */@media (max-width: 980px) and (min-width: 451px) {  .main {    width: 780px;     transform-origin: top center;    transform: scale(calc(100vw / 900));  }  .main .top-section {    transform-origin: top center;    transform: scale(calc(100vw / 900));  } }  /* Main content */.main {  display: flex;  flex-direction: column;  align-items: center; /* center frame + buttons horizontally */  width: 100%;  max-width: 700px;  min-height: 0;  box-sizing: border-box;  padding: 2%;  background: transparent;}/* Top section containing frame + ribbon + buttons */.top-section {  display: flex;  max-width: 700px;  flex-direction: row;  align-items: flex-start;  justify-content: center; /* center horizontally */  gap: 2%;  transform-origin: top center; /* scale from top center */  overflow: visible;}/* Big Ribbon: top-right of frame, scales proportionally */.big-ribbon {    position: absolute;    width: 44%;           /* relative to frame width (was 250px) */    top: 0%;             /* relative to frame height, slightly above top */    right: 0%;            /* align with right edge of frame */    transform: translate(26%, -26%) rotate(16deg); /* keep fine-tune */    z-index: 15;}/* Steffs Overlay: bottom center of frame, overlapping */.steffs-overlay {    position: absolute;    width: 40%;           /* relative to frame width (was 230px) */    left: 50%;            /* center horizontally */    bottom: -12%;          /* negative to overlap frame (was -55px) */    transform: translateX(-50%);    z-index: 10;    pointer-events: none; /* optional: allow clicks through */}/* Frame container */.frame {  position: relative;  width: 85%;      /* Default width */  max-width: 90vw;   /* Scales for smaller screens */}/* Frame image */.frame-img {  width: 100%;  display: block;  height: auto;}/* Photo box sits inside white area */.photo-box {  position: absolute;  top: 12%;     /* leave space for lace */  left: 9%;  width: 82%;  height: 76%;  overflow: hidden;}.photo-box img {  width: 100%;  height: 100%;  object-fit: cover;  border-radius: 15px;}.edge-fade {  width: 100%;  height: 100%;  object-fit: cover;  border-radius: 15px;  -webkit-mask-image: linear-gradient(white 90%, transparent 100%);  -webkit-mask-repeat: no-repeat;  -webkit-mask-size: 100% 100%;  -webkit-mask-position: center;  mask-image: linear-gradient(white 90%, transparent 100%);  mask-repeat: no-repeat;  mask-size: 100% 100%;  mask-position: center;  /* For fading on all sides, use inset box-shadow trick */  position: relative;}.photo-box::after {  content: "";  position: absolute;  inset: 0;  pointer-events: none;  box-shadow:    inset 0 9px 20px rgba(255,255,255,1),    inset 9px 0 10px rgba(255,255,255,1),    inset -9px 0 10px rgba(255,255,255,1),    inset 0 -9px 10px rgba(255,255,255,1);  border-radius: 15px;}/* Buttons styling */.buttons {  display: flex;  flex-direction: column; /* stack vertically */  justify-content: center;  gap: 6px;  margin-top: 11vw; /* 20% of viewport height */}.buttons button {  width: 4.5vw;  height: 4.5vw;  min-width: 30px;  min-height: 30px;  max-width: 40px;  max-height: 40px;  border-radius: 50%;       /* makes them circles */  background: linear-gradient(to bottom, white, #bae7ff);  cursor: pointer;  font-family: "Times New Roman", Times, serif;  font-style: italic;  font-weight: bold;  color: #6face8;  font-size: 18px;          /* number inside button */  display: flex;  justify-content: center;  align-items: center;  border: 1px solid #6face8;  box-shadow:       2px 2px 5px rgba(0,0,0,0.1),      inset 1px 1px 1px #bae7ff,      inset 4px 5px 2px rgba(255, 255, 255, 0.6),             inset -2px -3px 2px rgba(110, 11, 17, 0.15),      0 5px 5px rgba(0, 0, 0, 0.25);  text-shadow: 1px 1px 2px rgba(120, 0, 0, 0.15);}.middle-wrapper {    position: relative;   /* anchor for absolutely positioned notes */    width: 100%;    max-width: 700px;     /* match your main container width */    margin-top: 3vw;       /* center */    height: 30%;        /* or auto if flexible */}@media (min-width: 500px) and (max-width: 870px){  .middle-wrapper {    height: 40%; /* shrink for phones */  }}@media (max-width: 500px) {  .middle-wrapper {    height: 220px; /* shrink for phones */  }}.middle-section {  background: url('https://stefftest.neocities.org/background2.JPG') top center / cover no-repeat;  -webkit-mask-image: url('https://stefftest.neocities.org/middleframe.png');  -webkit-mask-repeat: no-repeat;  -webkit-mask-position: top center;  -webkit-mask-size: contain;  mask-image: url('https://stefftest.neocities.org/middleframe.png');  mask-repeat: no-repeat;  mask-position: top center;  mask-size: contain;  position: relative;  width: 100%;  aspect-ratio: 3/2;  overflow: visible;  z-index: 3;}.girlssitting {  position: absolute;       /* position relative to middle-wrapper */  top: 26%;                   /* flush with top of container */  left: 15%;                /* center horizontally */  transform: translateX(-50%);  width: 70%;             /* fixed width for easy control */  max-width: 400px;           /* scale down on small screens */  height: auto;  z-index: 10;              /* above the background mask */}@media (min-width: 500px) and (max-width: 1024px) {  .girlssitting {    width: 70%;     /* adjust as needed */    top: 30%;      /* adjust vertical position */  }}@media (max-width: 500px) {  .girlssitting {    width: 70%;      top: 22%;                   /* flush with top of container */    left: 15%;  }}.img1997 {  position: absolute;  top: 60%;  right: -5%; /* adjust as needed */  width: 70%;  max-width: 470px;  height: auto;  z-index: 9;}@media (min-width: 500px) and (max-width: 870px) {  .img1997 {    width: 70%;      top: 50%;                     right: -9%;  }}@media (max-width: 500px) {  .img1997 {    width: 70%;      top: 55%;                      right: -9%;  }}.logo-sticker-img {  position: absolute;  top: 7%;  right: 15%;  z-index: 20;  width: 23%;  max-width: 160px;  height: auto;}@media (max-width: 500px) {  .logo-sticker-img {    width: 23%;      top: 8%;                      right: 15%;  }}.ribbon-img {  position: absolute;  top: 7%;  left: 13%;  transform: scaleX(-1) rotate(58deg);  width: 43%;  max-width: 300px;  height: auto;  z-index: 9;}@media (min-width: 500px) and (max-width: 870px) {  .ribbon-img {    width: 50%;      top: 5%;                     left: 13%;  }}.cushionslide {  position: absolute;  top: 0;              left: 50%;           transform: translateX(-50%);  width: 100%;           height: auto;  overflow: hidden;  z-index: 0;           opacity: 0;         animation: fadeSlide 15s infinite;  animation-fill-mode: both; /* keep opacity at start/end */}/* Individual slides offsets */.cushionslide.slide1 { width: 90%; top: 3%; animation-delay: 0s; }  .cushionslide.slide2 { width: 60%; top: 5vw; animation-delay: 5s; }  .cushionslide.slide3 { width: 60%; top: 5vw; animation-delay: 10s; }/* Fade animation for equal durations */@keyframes fadeSlide { 0% { opacity: 0; } /* start hidden */ 20% { opacity: 1; } /* fade in longer */ 50% { opacity: 1; } /* hold fully visible */ 70% { opacity: 0; } /* fade out longer */ 100% { opacity: 0; } /* stay hidden until next cycle */ }.notes-container {    position: absolute;    top: 8vw;    left: 0;    width: 100%;    height: auto;    pointer-events: none;    z-index: 15;}@media (min-width: 500px) and (max-width: 870px) {  .notes-container {    top: 19vw;                   }}@media (max-width: 500px) {  .notes-container {    top: 23%;                   }}.note {    position: absolute;    top: 0px;    opacity: 0;    background-image: url('https://stefftest.neocities.org/musicnote.PNG');    background-size: contain;    background-repeat: no-repeat;    animation: fall linear infinite;}.note:nth-child(1)  { left: 10%; animation-duration: 10s; animation-delay: 0s;  width: 70px; height: 70px; }.note:nth-child(2)  { left: 20%; animation-duration: 8s;  animation-delay: 1s;  width: 60px; height: 60px; }.note:nth-child(3)  { left: 30%; animation-duration: 12s; animation-delay: 2s;  width: 50px; height: 50px; }.note:nth-child(4)  { left: 40%; animation-duration: 7s;  animation-delay: 3s;  width: 35px; height: 35px; }.note:nth-child(5)  { left: 50%; animation-duration: 9s;  animation-delay: 4s;  width: 45px; height: 45px; }.note:nth-child(6)  { left: 60%; animation-duration: 11s; animation-delay: 0.5s; width: 30px; height: 30px; }.note:nth-child(7)  { left: 70%; animation-duration: 8s;  animation-delay: 1.5s; width: 40px; height: 40px; }.note:nth-child(8)  { left: 80%; animation-duration: 13s; animation-delay: 2.5s; width: 70px; height: 70px; }.note:nth-child(9)  { left: 90%; animation-duration: 6s;  animation-delay: 3.5s; width: 55px; height: 55px; }.note:nth-child(10) { left: 5%;  animation-duration: 10s; animation-delay: 4.5s; width: 35px; height: 35px; }.note:nth-child(11) { left: 85%; animation-duration: 9s;  animation-delay: 5s;  width: 60px; height: 60px; }.note:nth-child(12) { left: 45%; animation-duration: 11s; animation-delay: 2s;  width: 25px; height: 25px; }.note:nth-child(13) { left: 15%; animation-duration: 7s;  animation-delay: 1s;  width: 45px; height: 45px; }.note:nth-child(14) { left: 75%; animation-duration: 10s; animation-delay: 3s;  width: 30px; height: 30px; }.note:nth-child(15) { left: 65%; animation-duration: 8s;  animation-delay: 5s;  width: 50px; height: 50px; }@keyframes fall {    0% {        opacity: 0.9;        transform: translateY(-20vh) rotate(0deg);    }    100% {        opacity: 0.9;        transform: translateY(120vh) rotate(360deg);    }}.lovely-section {  max-width: 700px;  width: 100%;  height: 5vw;  margin-top: 50px;  margin-bottom: 50px;  gap:0;  position: relative;  display: flex;  flex-direction: row;  align-items: flex-start;  overflow: visible;  justify-content: center;}.lovelyday2 {  width: 80%;   z-index: 1;  }.lovely-section::before {  content: "";  position: absolute;  width: 100%;  max-height: 70px;  min-height: 40px;  height: 11vw;  background: white;  filter: blur(8px);  z-index: 0;  }.bottom-section {  max-width: 700px;  width: 100%;  height: 400px;  gap:0;  position: relative;  display: flex;  flex-direction: row;  align-items: flex-start;  overflow: visible;  justify-content: center;  background-image: url('https://stefftest.neocities.org/background3.JPG');  background-size: 130%;  background-position: center;    /*border: 2px solid lightblue;*/}/* *//* @media (max-width: 450px) {  .lovely-section {    flex-direction: column;        align-items: center;             gap: 8px;              margin-top: -40%;  } */  /* Mobile view */@media (max-width: 450px) {  .top-section {    flex-direction: column;        align-items: center;           transform: scale(1.1);        gap: 8px;              padding-bottom: 6vw;/* slightly larger gap between frame + buttons */  }  .frame {    margin-top: 11px;           /* add space between top of main and frame */  }  .buttons {    flex-direction: row;           justify-content: center;    margin-top: 12px;          transform: scale(0.8);     gap: 6px;  }  .big-ribbon {    transform: translate(20%, -20%) rotate(16deg);   }}/* Calendar container */#calendar-widget-container {    background-color: #fff9e6; /* light yellow */    border: 2px solid #f2a4c8;    border-radius: 0;    padding: 10px;    margin: 20px auto 0 auto;    margin-left: 20px;/* top margin + center horizontally */    font-size: 13px;    box-shadow: 2px 2px 5px rgba(0,0,0,0.1);    color: #B7DEF7;    transform: scale(0.9);       /* shrink entire widget */    transform-origin: top left;  /* scale from top-left */    display: block;              /* allow centering with margin auto */}/* Calendar table */#calendar-grid table {    width: 100%;                 /* fill container */    border-collapse: collapse;    border: 1px solid #B7DEF7;    transform: scale(1);         /* no extra scaling inside */    transform-origin: top left;    display: block;              /* ensures table respects container */}/* Table cells */#calendar-grid th,#calendar-grid td {    text-align: center;    padding: 5px;        /* smaller padding for scaled widget */    width: 10%;          /* equal column widths */    color: #B7DEF7;    border: 1px solid #B7DEF7;    border-radius: 0;    font-size: 90%;      /* scale down text proportionally */}/* Weekday headers */#calendar-grid thead th {    color: #D94562;    font-weight: bold;    background-color: #B7DEF7; /* light blue */    border: 1px solid #f2a4c8;}/* Current day highlight */#calendar-grid .current-day {    background-color: #FACDD1; /* light pink */    color: #4877C2; /* dark blue */    font-weight: bold;    border-radius: 0;    border: 1px solid #f2a4c8;}/* Month-year display */#month-year-display {    font-weight: bold;    font-size: 1.35em; /* 90% of original 1.5em */    background-color: transparent;    padding: 5px 9px;    border-radius: 3px;    text-align: center;}#sidebar-toggle {  display: none;}/* Hamburger button only on small screens */@media (max-width: 768px) {  #sidebar-toggle {    display: block;    position: fixed;    top: 10px;    left: 10px;    z-index: 20;    width: 35px;    height: 35px;    background: #ffc0cb;    border: none;    border-radius: 5px;    font-size: 24px;    color: white;    cursor: pointer;  }  .sidebar {    position: fixed;       /* sit above main content */    top: 0;    left: -220px;          /* hidden to the left */    width: 200px;          /* same as current width */    height: 100%;    z-index: 15;    transition: left 0.3s ease; /* slide in animation */  }  /* When button clicked, slide sidebar in */  .sidebar.show {    left: 0;  }  /* Optional: push content down or hide main if desired */  .content {    flex-direction: column;  }}.credit-section {  text-align: center;           /* Center all text */  margin-top: 20px;               /* Space above and below the section */ /* Choose your preferred font */  color: #333;                  /* Dark gray text color */}.credit-section h2 {  margin: 0 0 10px 0;           /* Space below the heading */  font-size: 25px;              /* Adjust size as needed */  font-weight: normal;           /* Optional: make it less bold */}.credit-section p {  margin: 4px 0;    font-family: 'Times New ROman', sans-serif;/* Smaller spacing between paragraphs */  font-size: 14px;       color: brown; /* Slightly smaller text */  line-height: 1.2;             /* Tighter line height */}