 @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
     font-family: "Outfit", sans-serif;
 }

 body {
     background: url("https://images.unsplash.com/photo-1503264116251-35a269479413") no-repeat center center fixed;
     background-size: cover;
     font-family: "Outfit", sans-serif;
     min-height: 100vh;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 20px;
     transition: background 0.3s ease;
 }

 body.dark-mode {
     background: url("https://images.unsplash.com/photo-1519681393784-d120267933ba") no-repeat center center fixed;
     background-size: cover;
 }

 body.dark-mode::before {
     content: '';
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     background: rgba(0, 0, 0, 0.5);
     z-index: 0;
 }

 .theme-toggle {
     position: fixed;
     top: 20px;
     right: 20px;
     z-index: 1000;
     background: rgba(255, 255, 255, 0.9);
     border: none;
     width: 50px;
     height: 50px;
     border-radius: 50%;
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     transition: all 0.3s ease;
     box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
 }



 body.dark-mode .theme-toggle {
     background: white;
 }

 .theme-toggle svg {
     width: 24px;
     height: 24px;
 }

 .quote-box {
     background: #fff;
     width: 100%;
     max-width: 700px;
     padding: 40px;
     border-radius: 10px;
     text-align: center;
     box-shadow: 0 10px 20px 0px rgba(0, 0, 0, 0.15);
     position: relative;
     z-index: 1;
     transition: all 0.3s ease;
 }

 body.dark-mode .quote-box {
     background: rgba(26, 26, 46, 0.95);
     box-shadow: 0 10px 30px 0px rgba(0, 0, 0, 0.5);
 }

 .quote-box h2 {
     font-size: 32px;
     margin-bottom: 40px;
     position: relative;
     color: #0D0A4D;
 }

 body.dark-mode .quote-box h2 {
     color: #fff;
 }

 .quote-box h2::after {
     content: "";
     width: 75px;
     height: 3px;
     border-radius: 3px;
     background: #0D0A4D;
     position: absolute;
     bottom: -10px;
     left: 50%;
     transform: translateX(-50%);
 }

 body.dark-mode .quote-box h2::after {
     background: #6366f1;
 }

 .quote-box blockquote {
     font-size: 26px;
     min-height: 110px;
     color: #333;
 }

 body.dark-mode .quote-box blockquote {
     color: #e5e5e5;
 }

 .quote-box blockquote::before,
 .quote-box blockquote::after {
     content: '"';
 }

 .quote-box span {
     display: block;
     margin-top: 10px;
     float: right;
     position: relative;
     color: #666;
 }

 body.dark-mode .quote-box span {
     color: #a0a0a0;
 }

 .quote-box span::before {
     content: '';
     width: 20px;
     height: 2px;
     background: #0D0A4D;
     position: absolute;
     top: 50%;
     left: -30px;
 }

 body.dark-mode .quote-box span::before {
     background: #6366f1;
 }

 .quote-box div {
     width: 100%;
     margin-top: 50px;
     display: flex;
     justify-content: center;
 }

 .quote-box button {
     background: #0D0A4D;
     color: #fff;
     border-radius: 25px;
     border: 1px solid #0D0A4D;
     width: 150px;
     height: 50px;
     display: flex;
     align-items: center;
     justify-content: center;
     margin: 5px;
     cursor: pointer;
     transition: 0.2s;
     font-size: 16px;
 }

 body.dark-mode .quote-box button {
     background: #6366f1;
     border: 1px solid #6366f1;
 }

 .quote-box button:hover {
     background: transparent;
     color: #0D0A4D;
 }

 body.dark-mode .quote-box button:hover {
     background: transparent;
     color: #6366f1;
 }

 .quote-box button.loading {
     position: relative;
     color: transparent !important;
 }

 .quote-box button.loading::after {
     content: "";
     position: absolute;
     inset: 0;
     border-radius: 25px;
     background: linear-gradient(90deg, #eee 25%, #ddd 37%, #eee 63%);
     background-size: 400% 100%;
     animation: shimmer 1.4s ease infinite;
 }

 body.dark-mode .quote-box button.loading::after {
     background: linear-gradient(90deg, #444 25%, #555 37%, #444 63%);
 }

 .hidden {
     display: none;
 }

 .skeleton {
     background: linear-gradient(90deg, #eee 25%, #ddd 37%, #eee 63%);
     background-size: 400% 100%;
     animation: shimmer 1.4s ease infinite;
     border-radius: 8px;
     margin: auto;
 }

 body.dark-mode .skeleton {
     background: linear-gradient(90deg, #444 25%, #555 37%, #444 63%);
 }

 .skeleton-text {
     width: 100%;
     height: 26px;
     margin-bottom: 10px;
 }

 .skeleton-text.short {
     width: 150px;
     height: 20px;
 }

 @keyframes shimmer {
     0% {
         background-position: 100% 0;
     }

     100% {
         background-position: -100% 0;
     }
 }

 /* Responsive Design */
 @media (max-width: 768px) {
     .quote-box {
         padding: 30px 25px;
     }

     .quote-box h2 {
         font-size: 28px;
         margin-bottom: 30px;
     }

     .quote-box blockquote {
         font-size: 22px;
         min-height: 90px;
     }

     .quote-box button {
         width: 130px;
         height: 45px;
         font-size: 15px;
     }

     .theme-toggle {
         width: 45px;
         height: 45px;
         font-size: 20px;
         top: 15px;
         right: 15px;
     }
 }

 @media (max-width: 480px) {
     .quote-box {
         padding: 25px 20px;
     }

     .quote-box h2 {
         font-size: 24px;
         margin-bottom: 25px;
     }

     .quote-box h2::after {
         width: 60px;
     }

     .quote-box blockquote {
         font-size: 18px;
         min-height: 80px;
     }

     .quote-box span {
         font-size: 14px;
     }

     .quote-box span::before {
         width: 15px;
         left: -20px;
     }

     .quote-box button {
         width: 120px;
         height: 42px;
         font-size: 14px;
     }

     .quote-box div {
         margin-top: 40px;
     }

     .theme-toggle {
         width: 40px;
         height: 40px;
         font-size: 18px;
         top: 10px;
         right: 10px;
     }
 }