* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    width: 100vw;
    height: 100vh;
    background-color: #E6B03C;
    position: relative;
    display: grid;
    place-content: center;
    font-family: PermanentMarker, Shantell Sans, sans-serif;
    overflow: hidden;
}

body.loading-block {
    pointer-events: none !important;
}

:root {
    --hex-size: 165px;
    --hex-width: 165px;
    --hex-height: 165px;
    --hex-scale: 1;
}

.hex {
    position: absolute;
}

#pattern {
    position: absolute;
    top: var(--pattern-top, -110px);
    left: var(--pattern-left, -75px);
}

#background-skel {
    width: 200vw;
    height: 200vh;
    background-color: #362C27;
    opacity: 1;
}

#gradient {
    background: radial-gradient(#a8784718, transparent 70%);
    width: 800px;
    height: 800px;
    position: absolute;
    mix-blend-mode: multiply;
    top: -400px;
    left: -400px;
    transform: translate(400px, 400px);
}

#backbtn {
    position: fixed;
    top: 50px;
    left: 31px;
    width: 5%;
    min-width: 50px;
    opacity: 1;
    z-index: 100;
    transition: transform 0.1s ease-in-out;
}
#backbtn:hover {
    transform: scale(1.1);
}

#transition-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #000;
    z-index: 9999;
    pointer-events: none;
    opacity: 1;
    transform: translateX(0); 
    transition: transform 0.7s cubic-bezier(.77, 0, .18, 1);
}

#transition-overlay.swipe {
    transform: translateX(0);
    opacity: 1;
    transition: transform 0.7s cubic-bezier(.77, 0, .18, 1);
}

#transition-overlay.invisible-unswipe {
    transform: translateX(100%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.7s cubic-bezier(.77,0,.18,1), opacity 0s linear;
}

#transition-overlay.unswipe {
    transform: translateX(-100%);
    opacity: 1; 
    transition: transform 0.7s cubic-bezier(.77, 0, .18, 1);
}

#transition-overlay.fadeout {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.7s cubic-bezier(.77,0,.18,1);
}

#page-load {
    position: fixed;
    top: var(--skel-top, -110px);
    left: var(--skel-left, -75px);
    width: 200vw;
    height: 200vh;
    background-color: #070605;
    z-index: 100;
    pointer-events: none;
    opacity: 1;
    overflow: hidden;
}
#page-load::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.048) 30%, #ffffff23 50%, rgba(255, 255, 255, 0.048) 70%, transparent 100%);
    opacity: 0.7;
    pointer-events: none;
    z-index: 1;
    animation: glow-swipe 3s cubic-bezier(.77,0,.18,1) 0s 2 alternate;
    transition: opacity 1.2s cubic-bezier(.77,0,.18,1);
}
@keyframes glow-swipe {
    0% { transform: translateX(-100%); opacity: 0.7; }
    40% { opacity: 0.9; }
    50% { transform: translateX(100%); opacity: 1; }
    60% { opacity: 0.9; }
    100% { transform: translateX(-100%); opacity: 0.7; }
}
#page-load.fadeout {
    opacity: 0;
    transition: opacity 0.7s cubic-bezier(.77,0,.18,1);
}

#schedule-container {
    position: relative;
    z-index: 9;
    display: flex;
    flex-direction: column;
    width: 90vw;
    height: 70vh;
    gap: 10%;
    margin-top: 10%;
    align-items: center;
}
.day {
    display: flex;
    align-items: center;
    justify-content: center;
}
#star {
    display: block;
    top: 0;
    left: 0;
    width: 65%;
    height: auto;
}
#cloud {
    display: block;
    top: 10%;
    width: 70%;
    height: auto;
}
.schedule-week {
    display: flex;
    flex-direction: row;
    height: 100%;
    gap: 2%;
    justify-content: center;
}
.schedule-day {
    background: #633909ee;
    border-radius: 18px;
    box-shadow: 0 2px 12px #a8784722;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-family: PermanentMarker, Shantell Sans, sans-serif;
    color: #a87847;
    transition: box-shadow 0.2s;
    padding: 0 1%;
    text-align: center;
}
.schedule-day .star-date,
.schedule-day .cloud-date,
.schedule-day .stream-title,
.schedule-day .stream-time,
.schedule-day .no-stream {
    text-align: center;
    width: 100%;
    pointer-events: none;
}
.day .star-date {
    position: absolute;
    font-weight: bold;
    font-size: 4vmin;
    color: #ffbb00;
    text-align: center;
    z-index: 5;
}
.day .cloud-date {
    position: absolute;
    font-weight: bold;
    font-size: 4vmin;
    color: #ffbb00;
    text-align: center;
    transform: translateY(-20px);
    z-index: 5;
}
.schedule-day .stream-title {
    font-weight: bold;
    font-size: 3vmin;
    color: #ffe6c2;
    margin-bottom: 30%;
}
.schedule-day .stream-time {
    font-weight: bold;
    font-size: 3vmin;
    color: #fdc752;
}
.schedule-day .no-stream {
    font-size: 3.5vmin;
    font-weight: bold;
    color: #ffe6c2;
    margin-top: 2%;
}
.schedule-day .stream-tbd {
    font-size: 3.5vmin;
    font-weight: bold;
    color: #ffe6c2;
}

.schedule-text {
    position: absolute;
    width: 100%;
    height: 100%;
    justify-items: center;
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
    color: #633909;
}

#schedule-title {
    font-size: 4rem;
    font-weight: bold;
}