/* root and body */
@font-face {
  font-family: 'lucida';
  src: url('../fonts/LSANS.TTF') format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'lucida';
  src: url('../fonts/LSANSD.TTF') format('truetype');
  font-weight: bold;
  font-style: normal;
}

:root {
    --ui-font: 'lucida', sans-serif;

    --aqua-white: white;
    --aqua-blue: #BDEFFF;

    --windowshadow: 0px .6em .8em rgba(0, 0, 0, .8);

    --pressdown: brightness(.8) contrast(1.3) saturate(1.3);
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
    gap: 25pt;

    background-image: url(../wallpaper.png);
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;

    font-family: var(--ui-font);
}

/* menubar */

.menubar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 22px;
    background: linear-gradient(#EFEFEF 50%, #F6F6F6 50%);
    background-size: 100% 20%;
    border-top: white solid 1px;
    border-bottom: #ABABAB solid 1px;
    box-shadow: 0 0 13pt black;
    font-size: 10.5pt;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1px 15pt;
    box-sizing: border-box;
    user-select: none;
}

/* window */

.window {
    box-shadow: var(--windowshadow);
}

.titlebar {
    position: relative;
    user-select: none;

    text-align: center;
    font-size: .75em;
    padding: .2em 0;

    background: linear-gradient(to bottom, #E6E6E6, #CACACA);
    border-top: .1em solid white;
    border-bottom: .1em solid #8C8C8C;
    border-radius: .6em .6em 0 0;
}

.barbuttons {
    position: absolute;
    display: flex;
    gap: .6em;
    margin-left: .7em;
}

/* main dot element */

.dot {
    width: 1.1em;
    height: 1.1em;
    position: relative;
    border-radius: 50%;
    background: var(--aqua-white);

    box-shadow:
        0px 1pt 1pt #575757 inset,
        0px 4pt 3pt #979797 inset,
        0px 1.5pt 1.5pt rgba(0, 0, 0, 0.8);
}

.titlebar .dot {
    background: #dbdfde;
    box-shadow:
        0px 0pt 2pt #000 inset,
        0px 4pt 3pt rgb(109, 109, 109) inset,
        0px .7pt 1pt rgba(255, 255, 255, 0.7);
}

/* dot highlight */

.dot::before {
    content: '';
    position: absolute;
    top: 25%;
    left: 50%;
    width: 55%;
    height: 35%;
    transform: translate(-50%, -50%);
    border-radius: 50%;

    background: linear-gradient(to bottom,
            rgba(255, 255, 255, .7) 40%,
            rgba(255, 255, 255, 0) 100%);
    z-index: 1;
}

.check .dot::before {
    border-radius: 1em;
}

/* dot colors Wow I Really Reused This Alot LOL */

.dot.close::after,
.dot.minimize::after,
.dot.full::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 100%;
    mix-blend-mode: overlay;
    box-shadow: 0 0 1.5pt black inset;
}

.dot.close::after {
    background: rgb(201, 11, 36);
}

.dot.minimize::after {
    background: rgb(182, 119, 1);
    filter: saturate(1.5);
}

.dot.full::after {
    background: rgb(80, 150, 0);
    filter: saturate(1.3);
}

/* symbols on hover*/

.barbuttons:hover .dot {
    background-size: contain;
}

.barbuttons:hover .dot.close {
    background-image: url(../x.svg);
}

.barbuttons:hover .dot.minimize {
    background-image: url(../minimize.svg);
}

.barbuttons:hover .dot.full {
    background-image: url(../full.svg);
}

/* window content */

.windowbg,
.centerrrr,
button {
    display: flex;
    justify-content: center;
    align-items: center;
}

.windowbg {
    gap: 10pt;
    padding: 10pt 15pt;
    background: var(--aqua-white);
}

.centerrrr {
    flex-direction: column;
    gap: .5em;
}

/* buttons */

button {
    position: relative;
    user-select: none;

    font-family: var(--ui-font);
    font-size: .75em;
    padding: .25em .5em;
    min-width: 6.5em;

    border: none;
    border-radius: 1em;
    background: var(--aqua-white);
    z-index: 1;

    /* Shadows & text effects */
    text-shadow: 0px 1.5pt 2pt rgba(0, 0, 0, 0.4);
    box-shadow:
        0px 1.5pt 2.5pt #575757 inset,
        0px 6pt 5pt #a3a3a3 inset,
        0px 2pt 4pt rgba(0, 0, 0, 0.6);

    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-text-fill-color: black;
    -webkit-tap-highlight-color: transparent;

    color: black;
    outline: none;
}

button::after {
    content: '';
    position: absolute;
    top: .7pt;
    width: calc(100% - .8em);
    height: 50%;
    border-radius: 1em;

    background: linear-gradient(to bottom,
            rgba(255, 255, 255, .5) 60%,
            rgba(255, 255, 255, 0) 90%);
    z-index: -1;
}

button.blue,
button:active {
    background: var(--aqua-blue);
    box-shadow:
        0px 1.5pt 2.5pt #001863 inset,
        0px 6pt 5pt #2475d3 inset,
        0px 2pt 4pt rgba(0, 0, 0, 0.6);
}

button.disabled {
    opacity: .5;
    text-shadow: none;
    pointer-events: none;
}

/* radio buttons and checkboxes */

.radio,
.check {
    display: inline-flex;
    align-items: center;
    gap: .4em;
    font-size: .75em;
    line-height: 1;
    user-select: none;
}

:is(.radio, .check) input {
    display: none;
}

.check .dot {
    border-radius: 3px;
}

.check .dot::before {
    width: 80%;
    filter: none;
}

:is(.radio, .check) input:checked+.dot {
    background: var(--aqua-blue);
    box-shadow:
        0px 1pt 1pt #001863 inset,
        0px 5pt 3pt #2475d3 inset,
        0px 1.5pt 1.5pt rgba(0, 0, 0, 0.7);
}

.radio input:checked+.dot::after {
    content: '';
    position: absolute;
    inset: 50%;
    width: .4em;
    height: .4em;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: black;
}

.check input:checked+.dot::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: 15%;
    left: 20%;
    background: url(../check.svg) no-repeat;
    background-size: contain;
    z-index: 1;
}

/* slider */

.slidecontainer {
    width: 14em;
    position: relative;
}

.slider {
   -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: .6em;
    margin: 0;
    border-radius: 1em;
    box-shadow: 0 .2em .3em rgba(0, 0, 0, 0.7) inset;
    outline: none;
}

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 15px;
    height: 19px;
    margin-top: 5px;
    border: none;
    box-shadow: none;
    background: url('../handle.svg') no-repeat;
    filter: drop-shadow(0px 1.5pt .8pt rgba(0, 0, 0, 0.8));
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 19px; 
  border: 0;
  background: url('../handle.svg') no-repeat;
}

.ticks {
    display: flex;
    justify-content: space-between;
    padding: 0 .45em;
    margin-top: 4px;
    pointer-events: none;
}

.ticks span {
    width: 1px;
    height: 6px;
    background: #7B7B7B;
    opacity: .7;
}

/* pressing down */

:is(.dot, button.blue):active {
    filter: var(--pressdown);
}

.slider::-webkit-slider-thumb:active {
    filter: var(--pressdown) drop-shadow(0px 1.5pt .8pt rgba(0, 0, 0, 0.8));
}