/* Centered 900px container */html, body {  height: auto;  margin: 0;}@font-face {  font-family: "Roundhand";  src: url("fonts/SnellBT-Regular.woff2") format("woff2"),       url("fonts/SnellBT-Regular.woff") format("woff"),       url("fonts/SnellBT-Regular.ttf") format("truetype");  font-weight: normal;  font-style: normal;}body {    font-family: 'Edwardian Script ITC', cursive;    color: #6b4c4c;    margin: 0;    padding: 0;    background: linear-gradient(to bottom, #fffde6, white);}.container {  max-width: 900px;  width: 90%;  margin: 0 auto;  background-image: url('images/background1.JPG');  background-size: 100%;  position: relative;  display: flex;  flex-direction: column;  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);}.pincushion:hover {  transition: 0s ease;  filter:     drop-shadow(0 0 3px pink)    drop-shadow(0 0 5px pink)    drop-shadow(0 0 10px white);}.teddy-bear1 {    width: 130px;    position: absolute;    left: 95px;    bottom: -16px;    transform: rotate(16deg);    z-index: 20;          /* higher than scroll box (10) */}.teddy-bear3 {    width: 80px;    position: absolute;    left: 185px;    bottom: -10px;    transform: rotate(16deg);    z-index: 20;          /* higher than scroll box (10) */}@media (min-width: 700px) and (max-width: 900px) {.bears {    transform: scale(0.9);    position: absolute;    bottom: 0px;    z-index: 20;          /* higher than scroll box (10) */}}@media (max-width: 700px) {   .teddy-bear1 {  display: none;           }  .teddy-bear3 {  display: none;     }}@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-content {  display: flex;  flex-direction: column;  justify-content: space-between; /* page counter at top, contact at bottom */  flex: 1;}.sidebar {  display: flex;                    /* ⬅️ Add this */  flex-direction: column;           /* ⬅️ Stack content vertically */  justify-content: space-between;  /* ⬅️ Push top & bottom apart */  flex: 0 0 180px;  box-sizing: border-box;  margin: 0 0 0 0;  z-index: 2;  padding: 0 10px;    position: relative; /* container for pseudo-element */  background: linear-gradient(to bottom, #fff9e6, #ffffff); /* main gradient */  overflow: hidden; /* ensures pseudo-element stays inside *//* Optional: adds horizontal padding if needed */}/* Search bar flush to edges */.search-bar {  position: relative;  width: 110%;         left: -7px; /* 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),         0 0 8px rgba(245, 54, 88, 0.8),        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% 0 11%;          /* optional spacing */}.heart {  width: 30px;             /* adjust as needed */  height: 30px;  flex: 0 0 auto;  background: url('images/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;     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 */}.contact-section {  display: flex;  flex-direction: column;  margin-top: auto;  align-items: center;  margin-bottom: 10px;}.contact-icon {  position: relative;  display: inline-block; /* shrink to image size */  width: fit-content;    /* ensures container fits the image */}.contact-icon img {  width: 130px;  height: auto;  margin-bottom: 8px;  margin-left: 3px;  transition: transform 0.2s;  position: relative;  display: block; }.contact-icon img:hover {  transform: scale(1.05);}.contact-text {  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -150%);  color: white;  font-size: 17px;  font-weight: bold;  text-align: center;  pointer-events: none;  text-shadow:     0 0 5px #ffaab5,    0 0 10px #ffaab5;}.social-row {  display: flex;  gap: 6px;}.social-row a img {  width: 22px;  height: 22px;  transition: transform 0.2s;}.social-row a img:hover {  transform: scale(1.2);}@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;      background-image:    radial-gradient(circle, #ffc0cb 2px, transparent 2px),    radial-gradient(circle, #ffc0cb 2px, transparent 2px);  background-size: 15px 15px;     background-repeat: repeat;  background-position: 0 0, 7.5px 7.5px;  z-index: -1; }.responsive-wrapper {  width: 100%;  display: flex;  justify-content: center; /* center main horizontally */  min-height: 100vh;}/* 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: 1;  flex-direction: column;  align-items: center; /* center frame + buttons horizontally */  width: 100%;  max-width: 700px;  min-height: 100vh;  box-sizing: border-box;  padding: 2%;  background: transparent;}/* Top section containing frame + ribbon + buttons */.top-section {  display: flex;  width: 90%;  max-width: 700px;  flex-direction: column;  align-items: flex-start;  justify-content: center; /* center horizontally */  gap: 2%;  transform-origin: top center; /* scale from top center */  overflow: visible;  margin-bottom: 50px;}.top-section h2 {  margin: 10px;  font-weight: bold;  font-size: 35px;  text-align: left;}.top-section p {  font-size: 15px;  text-align: left;  font-family: "Times New Roman", Times, serif;  width: 90%;           /* make it respect the container's width */  margin: 0 0 1em 0;     /* optional spacing between paragraphs */  line-height: 1.5;      /* improves readability */  word-wrap: break-word;}.contact-form-wrapper {  max-width: 300px;  width: 70%;  margin: 0 auto;  padding: 12px 17px;  background: #fff9e6;  border: 4px double #ff83a0;  box-shadow: 0 0 15px rgba(255, 182, 193, 0.3);  text-align: center;  font-family: "Times New Roman", serif;}.contact-form-wrapper h2 {  color: #6b4c4c;  margin: 0px;  font-size: 20px;}/* Flex row for Name + Email */.contact-form .row {  display: flex;  gap: 10px;       /* space between fields */  flex-wrap: wrap;  /* wrap on small screens */  margin-bottom: 10px;}.contact-form .form-group {  flex: 1;          /* equal width */  min-width: 100px; /* prevents inputs from being too small */}.contact-form .full-width {  width: 100%;      /* full width for message box */  margin-bottom: 10px;}.contact-form label {  display: block;  text-align: left;  margin: 5px 0;  font-size: 14px;  font-weight: bold;  color: #b7416e;}.contact-form input,.contact-form textarea {  width: 100%;  padding: 6px 10px;  border: 1px solid #ff83a0;  font-family: "Times New Roman", serif;  font-size: 12px;  box-sizing: border-box;}.contact-form textarea {  resize: vertical;}.contact-form button {  background: linear-gradient(to bottom,  white 0%,  #ffd1dc 65%,  #ff9cb5 100%);  border: 2px solid #ff8fa3; /* lighter retro border */  color: #8b5e5e;            /* softer text color */  font-size: 12px;            /* ~75% of original 16px */  font-family: "Times New Roman", serif;  font-weight: bold;  padding: 7.5px 18.75px;     /* 75% of original 10px 25px */  border-radius: 0;           /* sharp rectangle edges */  cursor: pointer;  /* flat, straight-on retro 90s effect */  box-shadow: inset -1.5px -1.5px 0 #fff, inset 1.5px 1.5px 0 #ff8fa3;  text-shadow: 0.75px 0.75px #fff;}.contact-form button:hover {  /* subtle pressed effect */  box-shadow: inset 1.5px 1.5px 0 #fff, inset -1.5px -1.5px 0 #ff8fa3;  background-color: #ffc0cb;  /* slightly darker on hover */}/* Responsive adjustments for mobile */@media (max-width: 500px) {  .contact-form .row {    flex-direction: column; /* stack Name + Email on small screens */    gap: 10px;  }}/* Fade animation for equal durations *//* 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: 160px;  /* same as current width */    height: 100%;    z-index: 15;    transition: left 0.3s ease; /* slide in animation */    align-items: center;    overflow-y: auto;    overflow-x: hidden;    justify-content: center;        padding-right: 20px;     box-shadow: 0px 0px 6px rgba(0,0,0,0.3);  }  /* When button clicked, slide sidebar in */  .sidebar.show {    left: 0;  }.sidebar::before {  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),    radial-gradient(circle, #ffc0cb 2px, transparent 2px);  background-size: 15px 15px;       background-repeat: repeat;  background-position: 0 0, 7.5px 7.5px;   z-index: -1; /* keep behind content but above gradient */      height: 100vh;}.sidebar::after {    content: "";    position: absolute;    top: 0;    left: 153px;          /* aligns to the right edge of sidebar */    width: 7px;        /* your desired thickness */    height: 100vh;    background: linear-gradient(to right, #ffaab5, white, #ffaab5);    z-index: 20;       /* above sidebar content */    pointer-events: none; /* so it doesn't block clicks */    opacity: 0;        /* initially hidden */}.sidebar.show::after {    opacity: 1;}  .content {    flex-direction: column;  }  .nav-buttons {    list-style: none;    padding-right: 7px; }      .nav-buttons a {        width: 120px;      /* narrower for mobile */        height: 30px;      /* shorter height */        font-size: 16px;   /* smaller font */        margin: 0;        justify-content: center;    }        .nav-buttons li {    margin-bottom: 4px;    }    .search-bar {        width: 100%;       /* full width of sidebar */        left: 0;        margin-top: 70px;        margin-bottom: 10px;        max-height: 30px;    }    .search-bar input {        font-size: 14px;        padding-right: 35px;    }    .search-bar button {        width: 28px;        height: 28px;    }    .choco {    transform: scale(0.8);    margin: -5px 0 0 0;    }  .page-counter {    transform: scale(0.8);  }    .heart {    margin: 0;      }  .contact-icon img {    transform: scale(0.8);    margin: -5px;  }  .social-row a img {    transform: scale(0.8);  }}      /* Resize calendar widget proportionally on smaller screens */@media (max-width: 768px) {  #calendar-widget-container {    width: 90%;           /* take most of the screen width */    margin: 0 0 -45px 0;    transform: scale(0.7); /* shrink to 80% of original size */    transform-origin: top center; /* scale from top center */  }  /* Adjust calendar table for scaling */  #calendar-grid table {    width: 100%;          /* fill container */    transform: scale(1);  /* keep inner table normal for proportional scaling */    transform-origin: top left;  }  /* Table cells */  #calendar-grid th,  #calendar-grid td {    padding: 3px;         /* reduce padding proportionally */    font-size: 80%;       /* smaller font for mobile */  }  /* Month-year display */  #month-year-display {    font-size: 1em;       /* scale down text */  }}.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;           /* Space below the heading */  font-size: 20px;              /* 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 */}