html {
    display: table;
    width: 100%;
    margin:0;
    padding:0;
}

body {
    width: 100%;
    margin:0;
    padding:0;
}

h1 {
	color: #333;
	font: 700 2.625rem/3.375rem "Open Sans", sans-serif;
}

h2 {
	font: 700 2.625rem/3.375rem "Open Sans", sans-serif;
}

.stream-info {
    width: 90%;
    max-width: 600px;
    margin: 20px auto 0;
    background-color: #f7f7f7;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.info-item {
    display: flex;
    flex-direction: column;
    padding: 20px 0;
    border-bottom: 1px solid #dddddd;
}

/* Remove top padding from first item */
.info-item:first-child {
    padding-top: 0;
}

/* Remove bottom border from last item */
.info-item:last-child {
    border-bottom: none;
}

.info-label {
    font-size: 14px;
    font-weight: 800;
    color: #555;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.info-data {
    background-color: #ffffff;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #ccc;
    color: #333;
    font-weight: 600;
    font-size: 20px;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
}

/*h3 {
    border: 2px #eee solid;
    color: black;
    text-align: center;
    padding: 10px;
    font-size: 25px;
    background-color: white;
}*/

h4 {
    text-align: center;
    font: inherit;
    font-size: 22px;
    font-weight: 500;
    color: #333333;
    max-width: 1000px;
    margin: auto;
}

svg {
    min-width: 360px;
}

/*********************/
/*      Header       */
/*********************/

#top-area {
    background-color: whitesmoke;
}

#header-hill1 {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10vw;
    max-height: 200px;
    min-height: 40px;
}

#hill1-cls-1 {
    fill: #09db52;
}

#header-hill2 {
    z-index: 1;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10vw;
    max-height: 200px;
    min-height: 40px;
}

#hill2-cls-1 {
    fill: #07d54e;
}

#header-hill3 {
    z-index: 1;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10vw;
    max-height: 200px;
    min-height: 40px;
}

#hill3-cls-1 {
    fill: #00d048;
}

.custom-btn {
    background-color: #6f04ff; /* Base background matching submit button */
    color: white;
    font-size: 1.2rem;
    padding: 0.75rem 2rem;
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease; /* Smooth transition for hover, focus, and active states */
}

/* Hover effect */
.custom-btn:hover {
    background-color: #5516a9; /* Slightly darker purple for hover */
    box-shadow: 0 8px 10px rgba(0, 0, 0, 0.3); /* Enhanced shadow */
}

/* Focus effect (keyboard navigation) */
.custom-btn:focus {
    outline: none; /* Disable default outline */
    box-shadow: 0 0 10px 3px rgba(111, 4, 255, 0.8), 0 5px 15px rgba(0, 0, 0, 0.2); /* Add glowing outline */
    background-color: #5a03e6; /* Slightly lighter shade for focus */
}

/* Active effect (clicking) */
.custom-btn:active {
    background-color: #4a02b8; /* Even darker shade for active */
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); /* Subtle shadow reduction */
}

/* Disabled state */
.custom-btn:disabled {
    background-color: #d3b8ff; /* Muted lavender shade */
    color: white; /* Keep text white for readability */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* Softer shadow */
    cursor: not-allowed; /* Show 'not-allowed' cursor */
    opacity: 0.9; /* Slightly muted for distinction */
}

.header {
	position: relative;
	overflow: hidden;
	padding-top: 4rem;
	padding-bottom: 3rem;
	background-image: linear-gradient(#35D6ED, #7AE5F5);
	text-align: center;
	min-width: 360px;
}

.header .text-container {
	margin-left: 5px;
	margin-right: 5px;
}

.header label {
    color: #ffffff;
    text-shadow: 1px 1px black;
}

.header .form-control {
    box-shadow: 1px 1px black;
}

.header .p-heading {
	margin-bottom: 2rem;
}

.header .deco-white-circle-1,
.header .deco-white-circle-2,
.header .deco-blue-circle,
.header .deco-yellow-circle,
.header .deco-green-diamond {
	display: none;
}

.header-content {
    padding: 1rem;
    text-align: center;
}

.top-section {
    background: rgb(255 255 255 / 45%);
    padding: 1rem;
    border-radius: 20px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    min-width: 320px;
}

.main-title-text {
    text-shadow: 1px 1px 5px rgb(0 0 0 / 33%)
}

#main-title {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    color: #353131;
    margin-bottom: 0.5rem;
    padding: 0.8rem;
}

#main-subtitle {
    font-size: 1.2rem;
    color: #6f04ff;
    margin-bottom: 2rem;
}

.url-input-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
}

#url-form {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column; /* Optional for stacking other items, like info-status */
    gap: 1rem; /* Space between form elements */
}

#url-input {
    flex: 1;
    color: #333;
    font-size: 1rem;
    border-radius: 15px;
    padding: 0.75rem 1rem;
    border: 1px solid #ccc;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    width: 100%;
}

#submit-url {
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    border-radius: 15px;
    white-space: nowrap;
}

#submit-url:hover {
    background-color: #5a03e0;
}

@media (max-width: 576px) {
    .url-input-container {
        flex-direction: column;
        align-items: stretch;
    }

    #submit-url {
        width: 100%;
        margin-top: 0.5rem;
    }
}

/**************************/
/*        Sections        */
/**************************/

#instructions {
    height: 5rem;
}

#about {
    height: 5rem;
}

#contact {
    height: 5rem;
}

/**************************/
/*         General        */
/**************************/

p, .section-text {
    overflow-wrap: normal;
    font-size: 25px;
    color: black;
    font-family: Arial, Helvetica, sans-serif;
    margin-left: max(5px, 5%);
    margin-right: max(5px, 5%);
}

.section-text p {
    color: black !important;
    text-shadow: none !important;
}

#chart-body {
    display: table-cell;
    vertical-align: middle;
}

#chart-data-form {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

#chart-div {
    /*cursor: grab;*/
    max-width: 96%;
    min-width: 360px;
    /*display: flex
    margin: auto;*/

    /*direction: rtl;
    overflow: auto;
    text-align: left;*/

    padding-left: 0px;
    padding-top: 5px;
    padding-right: 15px;
    padding-bottom: 3rem;
    margin-top: 20px;
}

#chart-title {
    min-width: 360px;
}

#contact-header {
    font-size: 35px;
    color: white;
    margin-bottom: -0.5rem;
}

#emote-summary {
    min-width: 360px;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

#filter-area {
    width: 95%;
}

#info-section {
    padding-bottom: 2rem;
}

#info-status {
    margin-top: 1rem;
    color: red;
    font-size: 1rem;
    font-weight: bold;
    text-shadow: none !important;
}

#instructions-card {
    /*background-color: #ffffff1c;*/
    padding: 3em;
}

#section-grass {
    background-image: linear-gradient(#00eb51, #00d049);
}

#section-sand1 {
    background: #f5f2a5;
}

#section-sand2 {
    display: none;
    background: #f5f2a5;
}

#section-sand-wet {
    background: #e4e092;
}

#section-wave1 {
    background: #f0f0f0;
    padding-top: 2rem;
}

#section-wave2 {
    background: #d7e7f5;
    padding-top: 4rem;
}

#section-wave3 {
    background: #99c7f2;
}

#section-title {
    margin-left: 50%;
    transform: translateX(-50%);
}

#sand-div {
    background-color: #f5f2a5;
}

#top-channel-emotes-wrapper {
    overflow: hidden;
    border-radius: 10px;
    border: 2px #acacac solid;
    background: white;
}

#top-channel-emotes {
    max-width: 45vw;
    min-width: 335px;
    height: 25vh;
    padding-top: 10px;
    padding-bottom: 10px;
    margin: auto;
    overflow: auto;
    text-align: center;
    background: white;
    color: black;
}

#top-title {
    z-index: 1;
    margin-bottom: -2rem;
}

#video-analysis-div {
    margin-bottom: 1.5rem;
}

#video-analysis-options {
    margin-bottom: 1.5rem;
}

#video-analysis-div[style*="display: none"] {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    width: 0 !important;
    max-width: 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

#video-info-div {
    max-width: 50%;
    min-width: 360px;
    margin-top: 10px;
    overflow: hidden;
}

.about-div h2 {
    color: white;
    text-shadow: 3px 3px black;
}
/*
.about-div h2:after {
    display: block;
    width: 125px;
    height: 3px;
    margin: auto;
    margin-top: -5px;
    content: " ";
    background: white;
}
*/
.about-div p {
    color: white;
    text-shadow: 2px 2px black;
}

.about-div .bordered-area p{
    color: white !important;
    text-shadow: 2px 2px black !important;
}

.arrow-box {
    width: 30px; /* 60% of the original size */
    height: 30px; /* 60% of the original size */
    background-color: #1964a7; /* Blue background */
    border: 2px solid black; /* Black border, can keep the same thickness or reduce if needed */
    border-radius: 5px; /* Slightly smaller rounded corners to match the smaller box */
    display: flex; /* To center the arrow */
    justify-content: center; /* Center horizontally */
    align-items: center; /* Center vertically */
    margin: 40px auto; /* Adjusted margin to fit the smaller box, can be adjusted as needed */
}

.arrow {
    width: 0;
    height: 0;
    border-left: 6px solid transparent; /* 60% of the original size */
    border-right: 6px solid transparent; /* 60% of the original size */
    border-top: 9px solid white; /* 60% of the original size */
}

.article-section-1 {
    background-color: #2085e3;
}

.article-section-2 {
    background-color: #236bad;
}

.article-section-3 {
    background-color: #22405c;
}

.article-section-4 {
    background-color: #202020;
}

.article-spacer {
    height: 30vh;
}

.banner {
    min-width:350px;
    text-align: center;
    background: #eaeaea;
}

.bordered-area {
    min-width: 280;
    border: 2px black solid;
    border-radius: 10px;
}

.bordered-area-light {
    min-width: 280;
    border: 2px white solid;
}

.btn.btn-primary[disabled] {
    background-color: #808080;
    border-color: #808080;
}

.center-div {
    text-align: center;
    margin: auto;
    max-width: 50%;
    min-width: 360px;
}

.center-all {
    text-align: center;
    margin: auto;
}

.checkbox-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-left: 85px;
    margin-bottom: 10px;
}

.checkbox-container {
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 300px;
}

.checkbox-container input[type="checkbox"] {
    margin: 0 10px 0 0;
}

.checkbox-container label {
    margin: 0;
}

.checkbox-container i {
    margin-left: 5px;
    font-size: 0.9em;
}

/*
.contact-div h2:after {
    display: block;
    width: 150px;
    height: 3px;
    margin: auto;
    margin-top: -5px;
    content: " ";
    background: white;
}
*/
.document {
    margin: auto;
}

.error-message {
    color: red;
    font-size: 0.9em;
    margin: 0;
    text-align: center;
}

.fade {
  opacity: 0;
  transform: translate(0, 10vh);
  transition: all 1s;
}

.fade.visible {
  opacity: 1;
  transform: translate(0, 0);
}

.fa-question-circle {
    cursor: pointer;
}

.filter-form {
    position: relative;
    width: 50%;
    min-width: 360px;
}

.highlight-panel {
    background-color: #e7eae71a;
    text-shadow: 2px 2px black;
    padding: 20px;
    border: 1px #ffffff4a solid;
    border-radius: 10px;
}

.id-form input {
    display: inline-block;
    width: 350px;
}

.instructions-div h2 {
    color: white;
    text-shadow: 2px 2px black;
}
/*
.instructions-div h2:after {
    display: block;
    width: 250px;
    height: 3px;
    margin: auto;
    margin-top: -5px;
    content: " ";
    background: white;
}
*/
.instructions-div p {
    color: white;
    text-shadow: 2px 2px #000000;
    margin-top: 20px;
}

.instructions-div font {
    color: black;
    text-shadow: 2px 2px #69696969;
    margin-top: 20px;
    font-weight: bold;
}

.instructions-step {
    font-size: 42px;
}

.info-panel-light {
    overflow-wrap: normal;
    font-family: Arial, Helvetica, sans-serif;
    color: white;
    background-color: #101b1142;
    text-shadow: 2px 2px black;
    margin-left: max(5px, 5%);
    margin-right: max(5px, 5%);
}

.min-div {
    width:fit-content;
    height:fit-content;
}

.mpld3-figure {
    min-width: 360px;
    direction: ltr;
    display: block;
    margin: auto;

    /*position: relative;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);*/
}

g.mpld3-baseaxes > .mpld3-text {
    font-size: 0.9rem !important;
    font-weight: bold;
    fill: #333333 !important;
}

g.mpld3-paths > .mpld3-text {
    font-size: 0.75rem !important;
    font-weight: bold;
}

.mpld3-axesbg {
    rx: 10px;
    ry: 10px;
}

.navbar {
    min-width: 360px;
    max-width: 100%;
}

.page {
    min-width: 360px;
}

.progress {
    display: none;
    width: 30%;
}

.radio-select {
    text-align: left;
    display: inline;
}

.section-spacer {
    padding-top: 5rem;
    min-width: 360px;
}

.setting-filters-div {
    text-shadow: 2px 2px black;
}

.setting-filters-div h2 {
    color: #fff;
}
/*
.setting-filters-div h2:after {
  display: block;
  width: 250px;
  height: 3px;
  margin: auto;
  margin-top: -5px;
  content: " ";
  background: white;
}
*/
.setting-filters-div p {
    color: #fff;
    text-shadow: 2px 2px #black;
    font-size: 130%;
}

.slider {
    width: 100%;
}

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    margin-top: -3px;
    width: 20px;
    height: 20px;
    background: #007bff;
    border-radius: 50%;
    cursor: pointer;
    z-index: 2;
}

.slider::-moz-range-thumb {
    margin-top: -3px;
    width: 20px;
    height: 20px;
    background: #007bff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 2;
}

.slider::-webkit-slider-runnable-track {
    height: 10px;
    background: #ddd;
    z-index: 1;
}

.slider::-moz-range-track {
    height: 10px;
    background: #ddd;
    z-index: 1;
}

.spacer-slim {
    padding-top: 1rem;
}

.spinner {
    border: 4px solid #f5f2a5; /* Body background-color */
    border-top: 4px solid #0099ff; /* Blue */
    border-radius: 50%;
    width: 30px;
    height: 30px;
    margin-top: 10px;
    animation: spin 2s linear infinite;
    display: none;
}

.static-sections {
    margin-top: 50px;
    min-width: 360px;
}

.status-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.time-input {
    width: 90px;
    text-align: center;
}

.time-setting-container {
    width: 80%;
    margin: 0 auto;
    text-align: center;
}

.top-spacer {
    padding-top: 0.25rem;
}

/* Start video summary */

.video-summary-card {
    max-width: 800px;
    width: 90%;
    margin: 20px auto;
    background-color: #fafafa; /* Light gray background instead of stark white */
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); /* Softer shadow */
    overflow: hidden;
    font-family: 'Poppins', sans-serif;
}

.thumbnail-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%; /* 16:9 Aspect Ratio (9/16 * 100) */
    background-color: #000; /* fallback background while image loads */
    overflow: hidden;
}

.video-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* crop if needed to fill perfectly */
}

.video-details {
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px; /* smaller gap now that the flow is tighter */
}

.channel-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 8px;
}

.channel-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.channel-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
}

.channel-label {
    font-size: 0.75rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.channel-name {
    font-size: 1rem;
    font-weight: 500;
    color: #222;
}

.video-title {
    font-family: 'Poppins', sans-serif;
    font-size: 1.2rem; /* was 1.5rem, smaller now */
    font-weight: 600;
    text-align: center;
    line-height: 1.4; /* slightly bigger for better readability */
    letter-spacing: 0.25px;
    margin: 0 auto;
    max-width: 90%;
    color: #111;
}

.video-meta {
    display: flex;
    gap: 40px;
    font-size: 0.85rem;
    color: #777;
    margin-top: 12px;
}

.meta-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.meta-label {
    font-size: 0.7rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}

.meta-value {
    font-size: 0.95rem;
    font-weight: 500;
    color: #222;
}

/* End video summary */

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@media (min-width: 768px) {
    .navbar-brand {
        font-size: 30px;
    }

    .nav-link {
        font-size: 20px;
    }

    .top-section {
        padding: 2rem;
    }

    .header {
        padding-top: 6rem;
    }
}

@media (min-width: 530px) {
    #chart-div {
        zoom: 1.2;
    }
}

section-title h2 {
    text-align:center;
}

section-title.is-inview .splitting .char {
  animation: slide-in .3s cubic-bezier(.3, 0, .3, 1), opacity .3s linear;
  animation-delay: calc( 35ms * var(--char-index));
}

@keyframes slide-in {
  from {
    transform: scale(0.5);
    opacity: 0;
  }
}

/* Styling for the slider track for Chrome, Safari, and newer versions of Edge */
input[type=range]::-webkit-slider-runnable-track {
    background: #f2f1f1;
    border: 1px solid #ced4da;
    border-radius: 10px; /* Adjust this value to get the desired roundness */
    height: 8px; /* You may need to set a height to ensure the border-radius is visible */
}

/* Styling for the slider thumb for Chrome, Safari, and newer versions of Edge */
input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none; /* Necessary to style the thumb */
    appearance: none;
    margin-top: -4px; /* Adjust this value as needed to center the thumb */
    border-radius: 50%; /* Makes the thumb circular */
    /* ... other styles for thumb ... */
}

/* Styling for the slider track for Firefox */
input[type=range]::-moz-range-track {
    background: #f2f1f1;
    border: 1px solid #ced4da;
    border-radius: 10px; /* Adjust this value to get the desired roundness */
    height: 8px; /* You may need to set a height to ensure the border-radius is visible */
}

/* Styling for the slider thumb for Firefox */
input[type=range]::-moz-range-thumb {
    margin-top: -4px; /* Adjust this value as needed to center the thumb */
    border-radius: 50%; /* Makes the thumb circular */
    /* ... other styles for thumb ... */
}

#advanced-settings {
    display: none;
}

#toggle-advanced {
    background-color: transparent;
    border: none;
    color: #333333;
    cursor: pointer;
    outline: none;
}

#limit-input-container {
    margin-bottom: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

#limit-input-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
}

#limit-input-wrapper label {
    margin: 0;
}

#limit-input {
    width: 60px;
    text-align: center;
    padding: 5px;
    font-size: 14px;
    line-height: 1.2;
}

