@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&display=swap');

/* =========================================== */
/* LOADING SCREEN                              */
/* =========================================== */
#loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgb(201, 130, 118);
  z-index: 999;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}

#loading.fade-out {
  opacity: 0;
  visibility: hidden;
}

/* =========================================== */
/* SPINNER ANIMATION                           */
/* =========================================== */
#spinner {
  width: 50px;
  height: 50px;
  margin: 0;
  border: 12px solid #eee1ba;
  border-bottom: 12px solid rgb(201, 130, 118);
  border-radius: 50%;
  animation: rotate 0.8s linear infinite;
}

/* =========================================== */
/* ROTATION KEYFRAMES                          */
/* =========================================== */
@keyframes rotate {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}






/* ============================= */
/* DESKTOP + GENERAL STYLING */
/* ============================= */
body {
    padding: 0;
    margin: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    font-family: 'Cormorant Garamond', serif;

    /* Background setup */
    background: linear-gradient(
        0deg,
        rgba(122, 87, 74, 0.5),
        rgba(0, 0, 0, 0.5)
    ),
    url("./assets/main_bg.jpeg") center center no-repeat;
    background-size: cover;

    /* Smooth zoom + motion animation */
    animation: backgroundMotion 90s ease-in-out infinite alternate;
}

@keyframes backgroundMotion {
    0% {
        background-size: 100%;
        background-position: center center;
    }
    50% {
        background-size: 110%;
        background-position: top center;
    }
    100% {
        background-size: 100%;
        background-position: center bottom;
    }
}


.center-content {
    text-align: center;       /* Center text */
    display: flex;            /* Use flexbox to center vertically if needed */
    flex-direction: column;   /* Stack children vertically */
    justify-content: center;  /* Center vertically */
    align-items: center;      /* Center horizontally */
    min-height: 50vh;         /* Optional: center section in half viewport height */
    margin: 0 auto;
}

body, 
#about_container, 
#work_container, 
#projects_container, 
#contact_container {
  background-repeat: no-repeat;
  background-attachment: fixed;
}


/* =========================================== */
/* SLIDE-IN ANIMATIONS (LEFT / RIGHT / UP / DOWN) */
/* =========================================== */

@keyframes slideInLeft {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  0% {
    opacity: 0;
    transform: translateX(100%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInDown {
  0% {
    opacity: 0;
    transform: translateY(-100%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =========================================== */
/* SLIDE-OUT ANIMATIONS                        */
/* =========================================== */

@keyframes slideOutLeft {
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(-100%);
  }
}

@keyframes slideOutRight {
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(100%);
  }
}

@keyframes slideOutUp {
  0% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(100%);
  }
}

@keyframes slideOutDown {
  0% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(-100%);
  }
}

/* =========================================== */
/* BACKGROUND PAN ANIMATION                    */
/* =========================================== */
@keyframes panBackground {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* =========================================== */
/* SHARED STYLES FOR ALL SECTIONS              */
/* =========================================== */
#about_container,
#work_container,
#projects_container,
#contact_container {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #eee1ba;
  animation: panBackground 120s linear infinite;
  animation-fill-mode: both;
}

#about_container .center-content,
#work_container .center-content,
#projects_container .center-content,
#contact_container .center-content {
  background-color: rgba(201,130,118, 0.25);
  padding: 30px;
  border-radius: 10px;
}

/* =========================================== */
/* INDIVIDUAL SECTION ANIMATIONS + IMAGES      */
/* =========================================== */
#about_container {
  opacity: 0;
  transform: translateX(-100%);
  background-image: linear-gradient(0deg, rgba(122,87,74,0.5), rgba(0,0,0,0.5)), url('./assets/about-bg.jpg');
  animation: panBackground 120s linear infinite;
  animation-delay: 0.1s; /* optional smooth start */
}
#about_container.show {
  animation: panBackground 120s linear infinite, slideInLeft 0.8s ease-out forwards;
}

#work_container {
  opacity: 0;
  transform: translateX(100%);
  background-image: linear-gradient(0deg, rgba(122,87,74,0.5), rgba(0,0,0,0.5)), url('./assets/menu-bg.jpg');
  animation: panBackground 120s linear infinite;
  animation-delay: 0.1s; /* optional smooth start */
}
#work_container.show {
  animation: panBackground 120s linear infinite, slideInRight 0.8s ease-out forwards;
}

#projects_container {
  opacity: 0;
  transform: translateY(100%);
  background-image: linear-gradient(0deg, rgba(122,87,74,0.5), rgba(0,0,0,0.5)), url('./assets/projects-bg.jpg');
  animation: panBackground 120s linear infinite;
  animation-delay: 0.1s; /* optional smooth start */
}
#projects_container.show {
  animation: panBackground 120s linear infinite, slideInDown 0.8s ease-out forwards;
}

#contact_container {
  opacity: 0;
  transform: translateY(-100%);
  background-image: linear-gradient(0deg, rgba(122,87,74,0.5), rgba(0,0,0,0.5)), url('./assets/contact-bg.jpg');
  animation: slideInUp 1s ease-out forwards;
  animation-delay: 0.1s; /* optional smooth start */
}
#contact_container.show {
  animation: panBackground 120s linear infinite, slideInUp 0.8s ease-out forwards;
}



@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
/* =========================================== */
/* SLIDE-OUT STATES                            */
/* =========================================== */

#about_container.hide {
  animation: slideOutLeft 0.8s ease-in forwards, fadeOut 0.8s ease-in forwards;
}

#work_container.hide {
  animation: slideOutRight 0.8s ease-in forwards, fadeOut 0.8s ease-in forwards;
}

#projects_container.hide {
  animation: slideOutDown 0.8s ease-in forwards, fadeOut 0.8s ease-in forwards;
}

#contact_container.hide {
  animation: slideOutUp 0.8s ease-in forwards, fadeOut 0.8s ease-in forwards;
}















/* =========================================== */
/* MAIN HEADING (h1)                           */
/* =========================================== */
h1 {
  display: flex;
  justify-content: center;
  text-align: center;
  margin: 0 auto;
  padding: 15px 25px;
  border: 5px solid #eee1ba;
  border-radius: 20px;
  position: relative;
  color: #eee1ba;
  background: linear-gradient(90deg, #eee1ba, #d29985, #eee1ba);
  background-size: 200%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: softGlow 5s ease-in-out infinite;
  box-shadow: 0 0 5px #eee1ba, 0 0 10px rgba(201,130,118,0.5);
}

/* =========================================== */
/* GLOW ANIMATION                              */
/* =========================================== */
@keyframes softGlow {
  0% {
    box-shadow: 0 0 5px #eee1ba, 0 0 10px rgba(201,130,118,0.5);
  }
  50% {
    box-shadow: 0 0 25px #eee1ba, 0 0 40px rgba(201,130,118,0.8);
  }
  100% {
    box-shadow: 0 0 5px #eee1ba, 0 0 10px rgba(201,130,118,0.5);
  }
}

/* =========================================== */
/* GRADIENT MOTION                             */
/* =========================================== */
@keyframes gradientMove {
  0%   { background-position: 0%; }
  100% { background-position: 300%; }
}

/* =========================================== */
/* HEADING TEXT VARIANTS                       */
/* =========================================== */
h1 .highlight {
  color: #eee1ba;
  text-shadow: 2px 2px 5px #c97f76, 0 0 10px #eee1ba;
  font-weight: 500;
  padding: 0px 22px;
}

h1 .subtext {
  font-size: 20%;           /* smaller than main text */
  color: #eee1ba;
  vertical-align: middle;
  font-weight: 400;
}

h1 .subtext-vertical {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 30%;           /* smaller than main text */
  color: #eee1ba;
  text-shadow: 2px 2px 5px #c97f76, 0 0 10px #eee1ba;
  font-weight: 400;
}



/* =========================================== */
/* BACKGROUND BOX STRIPES                      */
/* =========================================== */
#box {
  position: fixed;
  top: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9;
}

#box div {
  width: 16.66vw;
  height: 100%;
  display: inline-block;
}

.box1,
.box2 {
  background: rgb(201,130,118);
}

.box2 {
  margin-left: -5px;
}

/* =========================================== */
/* MAIN MENU                                   */
/* =========================================== */
#menu {
  width: 100%;
  text-align: center;
  margin: 6vh 0;
  display: none;
}

#menu a {
  margin: 0 6%;
  font-size: 29px;
  color: #eee1ba;
  text-decoration: none;
}

/* =========================================== */
/* MIDDLE SECTION                              */
/* =========================================== */
#middle {
  position: fixed;
  top: 0;
  width: 100vw;
  height: 90vh;
  padding-bottom: 10vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  color: #eee1ba;
  z-index: 1;
}

#middle h1 {
  font-size: 90px;
  color: rgb(238,225,186);
  justify-content: center;
}

#middle table {
  width: 15%;
  margin: 6vh auto;
}

#middle table td {
  text-align: center;
}

/* =========================================== */
/* NAVIGATION BUTTONS                          */
/* =========================================== */
#projects,
#about,
#work,
#contact {
  width: 10vw;
  height: 10vw;
  font-size: 25px;
  color: #eee1ba;
  background: transparent;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  position: fixed;
  z-index: 4;
  transition: 0.4s ease-in-out;
}

#projects { top: 0; right: 45vw; border-radius: 0 0 100px 100px; }
#about    { left: 0; bottom: 40vh; transform: rotate(-90deg); border-radius: 0 0 100px 100px; }
#work     { right: 0; bottom: 40vh; transform: rotate(90deg); border-radius: 0 0 100px 100px; }
#contact  { bottom: 0; left: 45vw; border-radius: 100px 100px 0 0; }

#projects:hover,
#about:hover,
#work:hover,
#contact:hover {
  background: rgba(201,130,118,0.5);
  cursor: pointer;
}

/* =========================================== */
/* SOCIAL ICONS                                */
/* =========================================== */
.social {
  color: #eee1ba;
  font-size: 28px;
  border-radius: 50%;
  margin: 0 8px;
  text-align: center;
  transition: 0.4s ease-in-out;
}

.social:hover {
  color: rgb(201,130,118);
  cursor: pointer;
}

/* =========================================== */
/* CONTAINER SECTIONS                          */
/* =========================================== */
.container {
  position: fixed;
  width: 90vw;
  height: 90vh;
  padding: 5vh 5vw;
  background: rgb(201,130,118);
  color: #eee1ba;
  z-index: 9;
  max-height: 100vh;
  overflow-y: auto;
  display: none;
}

.container section {
  margin: 8vh 0;
}

.container div {
  font-size: 25px;
  margin: 20px 0;
  transition: 0.4s ease-in-out;
}

.container div:hover {
  cursor: pointer;
}

.container h1 {
  font-size: 50px;
}

.container p {
  font-size: 22px;
}

/* =========================================== */
/* USED TAGS                                   */
/* =========================================== */
#used div {
  display: inline-block;
  padding: 8px 10px;
  margin: 0 10px;
  font-size: 22px !important;
  border: 2px solid #eee1ba;
  border-radius: 50px;
}

#used,
#used div:hover {
  cursor: text;
}

/* =========================================== */
/* BUTTON STYLES                               */
/* =========================================== */
.btn_one,
.btn_two {
  font-size: 22px;
  font-family: 'Cormorant Garamond', serif;
  border-radius: 80px;
  font-weight: bold;
  margin: 2vh 10px;
  padding: 8px 40px;
  transition: 0.4s ease-in-out;
}

.btn_one {
  color: #eee1ba;
  background: transparent;
  border: 3px solid #eee1ba;
}

.btn_one:hover {
  color: rgb(201,130,118);
  background: #eee1ba;
  cursor: pointer;
}

.btn_two {
  color: rgb(201,130,118);
  background: #fff;
  border: 3px solid #eee1ba;
}

.btn_two:hover {
  padding: 8px 60px;
  cursor: pointer;
}

/* =========================================== */
/* FORM STYLING                                */
/* =========================================== */
.container form input,
.container form textarea {
  width: 46%;
  margin: 20px 1%;
  padding: 8px 10px;
  background: transparent;
  border: 0;
  border-bottom: 3px solid rgba(255,255,255,0.5);
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  color: #eee1ba;
  font-weight: bold;
  transition: 0.4s ease-in-out;
}

.container form textarea {
  width: 96%;
  resize: none;
}

.container form input:focus,
.container form textarea:focus {
  outline: none;
  border-bottom: 3px solid rgba(255,255,255,1);
}

/* =========================================== */
/* CONTACT LINKS                               */
/* =========================================== */
#contact_container a {
  color: #eee1ba;
  text-decoration: none;
}

#contact_container a:hover {
  color: rgb(201,130,118);
  text-decoration: underline;
}








/* =========================================== */
/* SERVICES LIST                               */
/* =========================================== */
.services-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 25px;
    margin: 20px 0;
    text-align: center;
}

.services-summary .service-item {
    display: flex;
    align-items: center;
    font-size: 18px;
    color: #eee1ba;
    gap: 8px;
    padding: 10px 15px;
    border: 2px solid #eee1ba;    /* border added */
    border-radius: 25px;
    transition: 0.3s ease-in-out;
}

.services-summary .service-item:hover {
    background: rgba(201,130,118,0.2);
    cursor: default;
}

.services-list {
  list-style: none;
  padding: 0;
  margin: 20px auto;
  max-width: 800px;
  text-align: left;
  line-height: 1.7;
  color: #eee1ba;
  font-size: 20px;
}

.services-list li {
  margin-bottom: 15px;
  padding: 10px 15px;
  border: 2px solid #eee1ba;
  border-radius: 15px;
  background: rgba(0, 0, 0, 0.1);
}

.services-list strong {
  font-size: 1.05em;
}

/* =========================================== */
/* FOOTNOTES                                   */
/* =========================================== */
#about_container .footnote,
#work_container .footnote,
#projects_container .footnote,
#contact_container .footnote {
  font-size: 16px;
  color: rgba(238, 225, 186, 0.7);
  margin-top: 20px;
}

#about_container .footnote,
#work_container .footnote,
#projects_container .footnote {
  text-align: center;
}

#contact_container .footnote {
  text-align: right;
}

#about_container sup {
  font-size: 0.8em;
}

/* =========================================== */
/* FOOTER + GLOBAL UI ELEMENTS                 */
/* =========================================== */
#footer {
  color: #eee1ba;
  width: 92vw;
  padding: 5vh 4vw;
  text-align: right;
  position: fixed;
  bottom: 0;
  z-index: 1;
  font-size: 16px;
  font-weight: bold;
}

#footer a {
  color: rgb(201, 130, 118);
}

/* =========================================== */
/* SCROLLBARS + TEXT SELECTION                 */
/* =========================================== */
::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

::-webkit-scrollbar-track {
  background: #eee1ba;
}

::-webkit-scrollbar-thumb {
  background: rgb(201, 130, 118);
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(201, 130, 118, 0.8);
}

::selection {
  color: #eee1ba;
  background: rgb(201, 130, 118);
}

::placeholder {
  color: #eee1ba;
}

/* =========================================== */
/* PARTICLES CANVAS                            */
/* =========================================== */
#particles-js {
  position: fixed;
  width: 100vw;
  height: 100vh;
}

/* =========================================== */
/* ABOUT LOGO                                  */
/* =========================================== */
.about-logo {
  text-align: center;
  margin-bottom: 5px;
}

.about-logo img {
  width: 150px;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease;
}

.about-logo img:hover {
  transform: scale(1.05);
}




/* =========================================== */
/* MOBILE VERSION (≤768px)                     */
/* =========================================== */
@media (max-width: 768px) {

  /* Hide side navigation buttons */
  #projects,
  #about,
  #contact,
  #work {
    display: none;
  }

  /* Footer and layout adjustments */
  #footer {
    text-align: center;
  }

  #middle {
    width: 90vw;
    padding: 0 5vw;
    justify-content: center;
  }

  #middle table {
    width: 60%;
  }

  #middle table td {
    font-size: 22px;
  }

  .container form input,
  .container form textarea {
    width: 80%;
  }

  #menu {
    display: inline-flex;
    width: 40%;
  }

  #onlywide {
    display: none !important;
  }

  .box2 {
    margin-left: 0 !important;
  }

  #box div {
    width: 90%;
  }

  #about_container .footnote,
  #contact_container .footnote {
    text-align: center;
  }

  /* Typography adjustments */
  #middle h1 {
    line-height: 1.2;
    padding: 0 10px;
    text-align: center;
  }

  #middle h1 .highlight {
    padding: 30px 12px;
    font-size: 36px;
  }

  #middle h2 {
    font-size: 20px;
    margin-top: 5px;
  }

  #middle h1 .subtext-vertical {
    font-size: 16px;
  }

  /* Reduce heading size in all containers */
  #about_container h1,
  #work_container h1,
  #projects_container h1,
  #contact_container h1 {
    font-size: 32px; /* adjust between 32–42px as you prefer */
    line-height: 1.2;
  }

  /* Optional: tighten spacing inside highlighted span */
  #about_container h1 .highlight,
  #work_container h1 .highlight,
  #projects_container h1 .highlight,
  #contact_container h1 .highlight {
    padding: 8px 12px;
  }


  /* Background animation for mobile containers */
  #about_container,
  #work_container,
  #projects_container,
  #contact_container {
    background-repeat: no-repeat;
    background-attachment: scroll;
    background-size: cover;
    background-position: left center;
    animation: panBackgroundMobile 90s linear infinite;
  }

  @keyframes panBackgroundMobile {
    0%   { background-position: center top; }
    50%  { background-position: center center; }
    100% { background-position: center bottom; }
  }

  /* Body background animation for mobile */
  body {
    min-height: 100vh;
    min-height: 100dvh;
    background-attachment: scroll;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center  center;
    animation: none;
  }
}

/* =========================================== */
/* REDUCED MOTION PREFERENCE                   */
/* =========================================== */
@media (prefers-reduced-motion: reduce) {
  #about_container,
  #work_container,
  #contact_container,
  #projects_container {
    animation: panBackground 120s linear infinite;
  }
}













