/* Invotek CSS, modified by Bkerboy */
/*     Last updated Jun-18-2026     */

/* ===== FONTS ===== */
@font-face {
    font-family: "Fredoka";
    font-display: swap;
    font-weight: 300;
    src: local("Fredoka Light"), url("/fonts/Fredoka-Light.ttf");
    font-style: normal;
}

@font-face {
    font-family: "Fredoka";
    font-display: swap;
    font-weight: 400;
    src: local("Fredoka Regular"), url("/fonts/Fredoka-Regular.ttf");
    font-style: normal;
}

@font-face {
    font-family: "Fredoka";
    font-display: swap;
    font-weight: 500;
    src: local("Fredoka Medium"), url("/fonts/Fredoka-Medium.ttf");
    font-style: normal;
}

@font-face {
    font-family: "Fredoka";
    font-display: swap;
    font-weight: 600;
    src: local("Fredoka SemiBold"), url("/fonts/Fredoka-SemiBold.ttf");
    font-style: normal;
}

@font-face {
    font-family: "Fredoka";
    font-display: swap;
    font-weight: 700;
    src: local("Fredoka Bold"), url("/fonts/Fredoka-Bold.ttf");
    font-style: normal;
}

/* ===== BASE & GLOBAL STYLES ===== */
body {
    max-width: 40rem;
    margin: 0 auto;
    outline: 1px solid rgba(0, 0, 0, 0.5);
    outline-offset: -10px;
    padding: 50px;
    opacity: 1;
}

@media (prefers-color-scheme: dark) {
    body {
        background-color: #0f0f0f;
        outline: 1px solid rgba(255, 255, 255, 0.5);
    }
}

* {
    font-family: "Fredoka", sans-serif;
    color: #181818;
    margin: 0;
    font-size: 0.95rem;
    letter-spacing: -0.5px;
}

@media (prefers-color-scheme: dark) {
    * {
        color: #e3e3e3;
    }
}

*::before,
*::after {
    font-family: "Fredoka", sans-serif;
    color: #cccccc;
}

@media (prefers-color-scheme: dark) {
    *::before,
    *::after {
        color: #707070;
    }
}

*::after {
    font-size: 0.8em;
}

/* ===== TEXT FORMATTING ===== */
b {
    font-family: "Fredoka", sans-serif;
    font-weight: bolder;
    font-style: normal;
}

@media (prefers-color-scheme: dark) {
    b {
        color: white;
    }
}

i {
    font-family: "Fredoka", sans-serif;
    font-style: italic;
}

u {
    position: relative;
    text-decoration: none;
    padding-bottom: 4px;
    margin-bottom: 5px;
    display: inline-block;
}

u::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(to right, #ce99ff, #5b00af, #ce99ff);
    background-size: 200% 100%;
    animation: underline-gradient 3s linear infinite;
}

/* ===== HEADING STYLES (h1, h2, h3, h4) ===== */
h1 {
    font-family: "Fredoka", sans-serif;
    font-weight: bolder;
    margin: 1rem 0;
    display: flex;
    align-items: center;
    font-size: 1.5rem;
}

h1::before {
    font-weight: bold;
    content: "# ";
    margin-right: 0.5rem;
}

h1::after {
    content: "";
    flex-grow: 1;
    height: 4px;
    margin-left: 10px;
    background: linear-gradient(to right, black, white);
}

@media (prefers-color-scheme: dark) {
    h1::after {
        background: linear-gradient(to right, white, #0f0f0f);
    }
}

details.h2 summary {
    font-family: "Fredoka", sans-serif;
    color: black;
    font-size: 1.1rem;
    font-weight: bolder;
    display: flex;
    align-items: center;
    padding: 0.6rem 0;
}

@media (prefers-color-scheme: dark) {
    details.h2 summary {
        color: white;
    }
}

details.h2 summary::before {
    font-weight: normal;
    content: "## ";
    margin-right: 0.5rem;
}

details.h2 {
    position: relative;
}

details.h2::before {
    content: "";
    position: absolute;
    left: -20px;
    top: 0.6rem;
    bottom: 0.6rem;
    width: 2px;
    background: #7700e6;
}

details.h3 summary,
details.h4 summary {
    font-family: "Fredoka", sans-serif;
    color: black;
    font-size: 1.05rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    padding: 0.6rem 0;
}

@media (prefers-color-scheme: dark) {
    details.h3 summary,
    details.h4 summary {
        color: white;
    }
}

details.h3 summary::before {
    font-weight: normal;
    content: "### ";
    margin-right: 0.5rem;
}

details.h4 summary::before {
    font-weight: normal;
    content: "#### ";
    margin-right: 0.5rem;
}

details.h3,
details.h4 {
    position: relative;
    margin-left: 20px;
}

details.h3::before,
details.h4::before {
    content: "";
    position: absolute;
    left: -20px;
    top: 0.6rem;
    bottom: 0.6rem;
    width: 2px;
    background: #7700e6;
}

details[open] {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
}

/* ===== DETAIL/SUMMARY INTERACTIONS ===== */
summary::after {
    font-family: "Fredoka", sans-serif;
    color: #595959;
    font-weight: light;
    content: "(click to show)";
    margin-left: auto;
    flex-shrink: 0;
}

@media (prefers-color-scheme: dark) {
    summary::after {
        color: #a1a1a1;
    }
}

details[open] > summary::after {
    content: "(click to hide)";
}

summary:focus-visible,
summary:hover {
    outline: 3px solid #7700e6;
}

summary:hover {
    outline-width: 1px;
}

/* ===== LINKS & ANCHORS ===== */
a {
    text-underline-offset: 0.2rem;
    color: #7700e6;
    padding: 0.5em 0.4em;
}

a:focus,
a:hover,
::selection {
    color: white;
    background-color: #7700e6;
}

@media (prefers-color-scheme: dark) {
    a:focus,
    a:hover,
    ::selection {
        color: black;
    }
}

a:focus-visible {
    font-family: "Fredoka";
    font-weight: bolder;
    text-decoration-thickness: 2px;
    outline: 3px solid #000000;
    outline-offset: 2px;
}

@media (prefers-color-scheme: dark) {
    a:focus-visible {
        outline-color: white;
    }
}

a.img88x31,
a.img88x31 img {
    padding: 0;
    display: inline-block;
}

/* ===== LIST ITEMS ===== */
li {
    margin: 1rem 0;
    line-height: 1.4rem;
}

/* ===== INFO & HIGHLIGHTS ===== */
.info-head,
.info p {
    font-family: "Fredoka", sans-serif;
    color: #595959;
    font-weight: light;
}

@media (prefers-color-scheme: dark) {
    .info-head,
    .info p {
        color: #a1a1a1;
    }
}

.info-head::before {
    content: "> ";
}

.info {
    padding-right: 5px;
}

.info-highlight,
.ul-info-highlight {
    position: relative;
}

.info-highlight::before,
.ul-info-highlight::before {
    content: "";
    position: absolute;
    left: -20px;
    width: 4px;
    height: 100%;
    background: linear-gradient(to bottom, #ce99ff, #5b00af, #ce99ff);
    background-size: 100% 200%;
    animation: gradient 3s linear infinite;
}

.ul-info-highlight::before {
    left: 0px;
}

.announcement-highlight {
    position: relative;
    margin: 2rem 0;
}

.announcement-highlight::before {
    content: "";
    position: absolute;
    left: -20px;
    width: 4px;
    height: 100%;
    background: linear-gradient(to bottom, #ffe600, #ad7100, #ffe600);
    background-size: 100% 200%;
    animation: gradient 3s linear infinite;
}

/* ===== LINK CONTAINER & DIRECTORY ===== */
.link-container {
    padding-left: 10px;
}

.link-container p,
.link {
    display: flex;
    align-items: center;
    margin: 0.3rem 0;
}

.link-container p::before,
.link::before {
    content: "=> ";
    margin-right: 0.5rem;
}

.directory {
    font-family: "Fredoka", sans-serif;
    color: #cccccc;
    font-weight: light;
}

@media (prefers-color-scheme: dark) {
    .directory {
        color: #707070;
    }
}

.directory::before {
    content: "$ ";
}

/* ===== PURCHASE BADGES ===== */
.purchase-red,
.purchase-green,
.purchase-yellow,
.purchase-blue {
    padding: 0.1rem 0.3rem;
    white-space: nowrap;
    color: black;
}

@media (prefers-color-scheme: dark) {
    .purchase-red,
    .purchase-green,
    .purchase-yellow,
    .purchase-blue {
        color: white;
    }
}

.purchase-red {
    border: 1px solid red;
    background: linear-gradient(to top, #ffbaba, #fff3f3);
}

@media (prefers-color-scheme: dark) {
    .purchase-red {
        background: linear-gradient(
            to top,
            rgba(255, 186, 186, 0.4),
            rgba(255, 243, 243, 0.1)
        );
    }
}

.purchase-green {
    border: 1px solid #00ff00;
    background: linear-gradient(to top, #85ff85, #f5fff5);
}

@media (prefers-color-scheme: dark) {
    .purchase-green {
        background: linear-gradient(
            to top,
            rgba(133, 255, 133, 0.4),
            rgba(245, 255, 245, 0.1)
        );
    }
}

.purchase-yellow {
    border: 1px solid yellow;
    background: linear-gradient(to top, #ffff00, #ffffd7);
}

@media (prefers-color-scheme: dark) {
    .purchase-yellow {
        background: linear-gradient(
            to top,
            rgba(255, 255, 0.4),
            rgba(255, 255, 215, 0.1)
        );
    }
}

.purchase-blue {
    border: 1px solid blue;
    background: linear-gradient(to top, #cacaff, #f8f8ff);
}

@media (prefers-color-scheme: dark) {
    .purchase-blue {
        background: linear-gradient(
            to top,
            rgba(202, 202, 255, 0.4),
            rgba(248, 248, 255, 0.1)
        );
    }
}

/* ===== TRANSPARENCY STYLES ===== */
.transparency-title {
    font-size: 1.2rem;
    font-family: "Fredoka", sans-serif;
    font-weight: 600;
}

@media (prefers-color-scheme: dark) {
    .transparency-title {
        color: white;
    }
}

.transparency-value {
    font-size: 1.5rem;
    font-family: "Fredoka", sans-serif;
    font-weight: bolder;
    color: #7700e6;
}

.transparency-value span {
    font-size: 1.1rem;
    color: #181818;
}

@media (prefers-color-scheme: dark) {
    .transparency-value span {
        color: #e3e3e3;
    }
}

.transparency-value .g {
    color: #006600;
}

@media (prefers-color-scheme: dark) {
    .transparency-value .g {
        color: #00ff00;
    }
}

.transparency-value .r {
    color: #b30000;
}

@media (prefers-color-scheme: dark) {
    .transparency-value .r {
        color: #ff7070;
    }
}

/* ===== CONTAINERS & BOXES ===== */
.item-container,
.warning-container,
.info-container,
.waiting-container,
.success-container,
.link2,
.link3 {
    display: flex;
    align-items: center;
}

.item-container {
    margin: 1rem 0;
}

.item-container-container {
    display: grid;
    justify-content: center;
}

.warning-container,
.info-container,
.waiting-container,
.success-container,
.link2,
.link3 {
    margin: 0.5rem 0;
    border: 3px solid #ff0000;
    padding: 10px;
    border-radius: 10px;
}

.info-container {
    border-color: #0000ff;
}

.waiting-container {
    border-color: #808080;
}

.success-container {
    border-color: #008000;
}

.link2,
.link3 {
    border-color: #7700e6;
    background: linear-gradient(to top, #e4ccfa, #fbf7fe);
}

@media (prefers-color-scheme: dark) {
    .link2,
    .link3 {
        border-color: #7700e6;
        background: linear-gradient(to top, #ce99ff33, #ce99ff11);
    }
}

.link3 {
    height: 16px;
    width: fit-content;
}

.link2:hover:not(:focus),
.link3:hover:not(:focus) {
    background: linear-gradient(to top, #e4ccfa, #fbf7fe);
    color: #7700e6;
}

@media (prefers-color-scheme: dark) {
    .link2:hover:not(:focus),
    .link3:hover:not(:focus) {
        color: #7700e6;
        background: linear-gradient(to top, #ce99ff33, #ce99ff11);
    }
}

.link2:focus,
.link3:focus {
    background: black;
}

@media (prefers-color-scheme: dark) {
    .link2:focus,
    .link3:focus {
        background: white;
        color: black;
    }
}

.link2:focus-visible p,
.link3:focus-visible p {
    font-family: "JetBrains Mono";
    font-weight: bolder;
}

.link2:focus p,
.link2:focus b,
.link3:focus p,
.link3:focus b {
    color: white;
}

@media (prefers-color-scheme: dark) {
    .link2:focus p,
    .link2:focus b,
    .link3:focus p,
    .link3:focus b {
        color: black;
    }
}

/* ===== LINK IMAGES ===== */
.link2 .img,
.link2 .img-nocircle,
.link3 .img {
    position: relative;
    display: inline-block;
    height: 24px;
}

.link2 .img,
.link2 .img-nocircle {
    margin-left: auto;
}

.link3 .img {
    margin-right: 10px;
}

.link2 img,
.link2 .img-nocircle,
.link3 img {
    margin-right: 0;
    position: relative;
}

.link3 img {
    transform: rotate(180deg);
}

.link2 .img::before,
.link3 .img::before {
    content: "";
    position: absolute;
    width: 24px;
    height: 24px;
    background-color: white;
    border-radius: 50%;
    border: 1px solid black;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media (prefers-color-scheme: dark) {
    .link2 .img::before,
    .link3 .img::before {
        background-color: black;
        border: 1px solid white;
    }
}

.link3 .img::before {
    width: 22px;
    height: 22px;
}

.link2 .img:hover::before,
.link2 .img:focus::before,
.link3 .img:hover::before,
.link3 .img:focus::before {
    background-color: black;
    border-color: white;
}

@media (prefers-color-scheme: dark) {
    .link2 .img:hover::before,
    .link2 .img:focus::before,
    .link3 .img:hover::before,
    .link3 .img:focus::before {
        background-color: white;
        border-color: black;
    }
}

.link2 .img:hover img,
.link2 .img:focus img,
.link3 .img:hover img,
.link3 .img:focus img {
    filter: invert(100%);
}

@media (prefers-color-scheme: dark) {
    .link2 .img:hover img,
    .link2 .img:focus img,
    .link3 .img:hover img,
    .link3 .img:focus img {
        filter: none;
    }
}

/* ===== TEXT SIZES ===== */
.info p,
.link-container p,
.link-container a,
.link3 p,
.small-text {
    font-size: 0.85rem;
}

.smaller-text {
    font-size: 0.75rem;
}

/* ===== USP CONTAINERS ===== */
.usp-container-container {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.usp-container:not(.title) {
    border: 1px solid #7700e6;
    width: 250px;
    margin: 10px;
    padding: 8px;
}

.usp-container .title {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}

.usp-container img {
    margin-right: 8px;
    width: 32px;
    height: 32px;
}

.usp-container .title p {
    font-family: "Fredoka";
    font-weight: bolder;
    font-size: 1.2em;
}

@media (prefers-color-scheme: dark) {
    .usp-container .title p {
        color: white;
    }
}

/* ===== ICONS ===== */
.icon,
.icon-r,
.icon2,
.icon-notheme {
    margin-right: 1em;
    width: 24px;
    height: 24px;
}

.icon-nothemebig {
    margin-top: -0.75em;
    margin-right: 1em;
    width: 48px;
    height: 48px;
}

.icon-r {
    transform: rotate(180deg);
}

.icon3 {
    padding-right: 0.5rem;
    margin-right: 1rem;
    border-right: 4px solid #bbb;
}

@media (prefers-color-scheme: dark) {
    .icon,
    .icon-r,
    .icon3,
    .icon4 {
        filter: invert(100%);
    }

    .icon3 {
        border-right-color: #777;
    }
}

.warning-container img,
.info-container img,
.waiting-container img,
.success-container img {
    margin-right: 10px;
}

/* ===== CODE & PREFORMATTED TEXT ===== */
pre,
code {
    background: #313131;
    color: white;
    border-radius: 5px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    padding: 2px;
    font-size: 0.8rem;
}

pre {
    padding: 5px;
    overflow-x: auto;
}

.no-overflow {
    white-space: pre-wrap;
}

/* ===== TESTIMONIALS ===== */
.testimonial {
    font-family: "Fredoka", sans-serif;
    font-size: 1.1rem;
    margin: 0.5rem 0;
    font-weight: 600;
    padding-left: 1rem;
    border-left: 4px solid #bbb;
}

@media (prefers-color-scheme: dark) {
    .testimonial {
        color: white;
    }
}

/* ===== FORM ELEMENTS ===== */
.required::after {
    color: red;
    font-family: "JetBrains Mono";
    font-weight: bolder;
    content: " *";
    font-size: 1em;
}

.required-text {
    color: red;
    font-family: "JetBrains Mono";
    font-weight: bolder;
}

input {
    padding: 0.3rem;
    max-width: 300px;
    width: 100%;
    border: solid 1px black;
    display: block;
    margin: 0.1rem 0;
}

@media (prefers-color-scheme: dark) {
    input {
        border-color: #ccc;
        background-color: #222;
    }
}

input:hover,
textarea:hover {
    border: solid 1px #7700e6;
    background-color: #141414;
    color: white;
}

@media (prefers-color-scheme: dark) {
    input:hover,
    textarea:hover {
        border: solid 1px #7700e6;
        background-color: white;
        color: black;
    }
}

input[type="number"] {
    max-width: 50px;
    text-align: center;
    display: inline;
}

input[type="checkbox"],
input[type="radio"] {
    margin: 0;
    padding: 0;
    width: auto;
    display: inline;
}

::placeholder {
    color: #bbbbbb;
}

@media (prefers-color-scheme: dark) {
    ::placeholder {
        color: #888;
    }
}

textarea {
    display: block;
    margin: 0.1rem 0;
    border: solid 1px black;
}

@media (prefers-color-scheme: dark) {
    textarea {
        border-color: #ccc;
        background-color: #222;
    }
}

p span {
    color: black;
}

@media (prefers-color-scheme: dark) {
    p span {
        color: white;
    }
}

.price-bold,
.price-bold::before,
label,
fieldset legend {
    font-family: "JetBrains Mono";
    font-weight: bolder;
    color: black;
}

@media (prefers-color-scheme: dark) {
    .price-bold,
    .price-bold::before,
    label,
    fieldset legend {
        color: white;
    }
}

.price-bold::before {
    content: "�";
}

fieldset label,
.regular {
    font-family: "JetBrains Mono";
    font-weight: normal;
}

button {
    border: 2px solid #7700e6;
    background-color: #f0f0f0;
    margin: 0.1rem 0;
}

@media (prefers-color-scheme: dark) {
    button {
        background-color: #222;
    }
}

button:hover {
    background-color: #141414;
    color: white;
}

@media (prefers-color-scheme: dark) {
    button:hover {
        background-color: white;
        color: black;
    }
}

/* ===== UTILITY CLASSES ===== */
.no-display,
.charity {
    display: none;
}

/* ===== BOTTOM SECTION ===== */
.bottom {
    margin-top: 4rem;
    display: flex;
    border-top: 1px solid black;
    padding-top: 1rem;
}

@media (prefers-color-scheme: dark) {
    .bottom {
        border-color: white;
    }
}

.bottom div {
    flex: 1;
}

@media (max-width: 500px) {
    .bottom {
        flex-direction: column;
    }
}

/* ===== ANIMATIONS ===== */
@keyframes gradient {
    0% {
        background-position: 0% 200%;
    }
    100% {
        background-position: 0% 0%;
    }
}

@keyframes underline-gradient {
    0% {
        background-position: 200% 0%;
    }
    100% {
        background-position: 0% 0%;
    }
}

/* ===== SCROLL EFFECTS ===== */
.container {
    display: flex;
    align-items: center;
    height: 100vh;
    overflow: hidden;
}

.scroll {
    white-space: nowrap;
    margin: 0 2em;
}

.scroll div {
    display: flex;
    gap: 2em;
}

.scroll p {
    font-size: 5em;
    color: white;
    font-weight: bold;
    margin-bottom: 0;
    line-height: 10px;
}

.RightToLeft {
    animation: RightToLeft 10s infinite linear;
}

@keyframes RightToLeft {
    from {
        transform: translateX(0%);
    }
    to {
        transform: translateX(-50%);
    }
}

.LeftToRight {
    animation: LeftToRight 10s infinite linear;
}

@keyframes LeftToRight {
    from {
        transform: translateX(-50%);
    }
    to {
        transform: translateX(0%);
    }
}
