/* =========================================================
   FONTS
========================================================= */

@font-face {
    font-family: 'Rajdhani';
    src: url('/assets/fonts/Rajdhani-Light.ttf') format('truetype');
    font-weight: 300;
}

@font-face {
    font-family: 'Rajdhani';
    src: url('/assets/fonts/Rajdhani-Regular.ttf') format('truetype');
    font-weight: 400;
}

@font-face {
    font-family: 'Rajdhani';
    src: url('/assets/fonts/Rajdhani-Medium.ttf') format('truetype');
    font-weight: 500;
}

@font-face {
    font-family: 'Rajdhani';
    src: url('/assets/fonts/Rajdhani-SemiBold.ttf') format('truetype');
    font-weight: 600;
}

@font-face {
    font-family: 'Rajdhani';
    src: url('/assets/fonts/Rajdhani-Bold.ttf') format('truetype');
    font-weight: 700;
}


/* =========================================================
   GLOBAL
========================================================= */

html {
    font-size:22px;
    font-family:Rajdhani,sans-serif;
    color:white;
}

body {
    margin:0;
    background:#2a2a2a;
    overflow-x:hidden;
}
body::after {
  content: "";
  position: absolute;
  top: 0;
  right: -1px;
  width: calc(2*234px);
  height: calc(2*154px);

  pointer-events: none;

  background: url("/assets/img/decoCubesBody.svg") no-repeat top right;
  background-size: contain;
}


h1 {
    font-weight:bold;
    font-size:1.8rem;
}

input, textarea {
    padding:10px 18px;
    padding-right:60px;
    margin:10px 0;
    border-radius:0;
    color:white;
    font-family:Rajdhani,sans-serif;
    border:0;
    border-bottom:3px solid transparent;
    border-top-right-radius: 40px;
    padding:10px;
    background:#fff2;
    
    font-size:1.1rem;
    font-weight:500;
    
    transition: 0.4s;
}

input[type=checkbox] {
    display: inline-block;
    width:unset !important;
    margin:10px;
}

textarea{
    width:600px;
    height:250px;
}

input,
textarea {
}
input:focus,
input:focus-visible,
textarea:focus,
textarea:focus-visible {
    border:0;
    border-bottom:3px solid #ff007f;
    background:#fffc;
    outline: 0;
    color:black;
    
    transition: 0.4s;
}

a,
a:hover,
a:link,
a:visited {
    text-decoration: none;
    font-weight:600;
}

a:not(.btn),
a:hover:not(.btn),
a:link:not(.btn),
a:visited:not(.btn) {
    color:#ff007f;
}

p, li, h1, h2, h3, h4, h5, h6, span, div, pre, code {
    cursor:default;
}
a, a * {
    cursor:pointer;
}









.menu a,
.menu a:hover,
.menu a:link,
.menu a:visited {
    color:#ffffff;
}

.admin-toolbar-inner a,
.admin-toolbar-inner a:hover,
.admin-toolbar-inner a:link,
.admin-toolbar-inner a:visited {
    color:#ffffff;
}

.simple-page{
    padding-top:160px;
}

.flash-message {
    position:fixed;
    top:20px;
    left:20px;
    display:inline-block;
    z-index: 999999999999999;
    padding:10px;
    background: #00EEFF;
    border-radius:10px;
    color:black;
    font-weight:600;
}

.section {
    width: 100%;
    position: relative;
}

.container {
    max-width: 1500px; /* adjust to taste (1200–1600 ideal) */
    margin: 0 auto;
    padding: 0 40px;
}

/* smaller screens */
@media (max-width: 900px) {
    .container {
        padding: 0 20px;
        max-width:95%;
    }
}

/* =========================================================
   LOGO
========================================================= */

.logo {
    position:fixed;
    top:10px;
    left:25px;
    z-index:200;
    padding:20px;
    /*backdrop-filter:blur(10px);*/
}
@keyframes logoAnim {
  from {
    filter:hue-rotate(0deg);
      
  }
  to {
    filter:hue-rotate(360deg);
      
  }
}

.logo a{
    display:block;
}

.logo img{
    display:block;
    max-width:30vw;
    width:320px;
    animation: logoAnim 20s infinite;
}


/* =========================================================
   MENU
========================================================= */

.menu-wrapper {
    position:fixed;
    top:0;
    width:100%;
    margin-top:20px;

    display:flex;
    justify-content:center;

    z-index:100;
}

.menu {
    display:flex;

    padding:10px 36px;

}

.menu:hover {
    background:#ff007f;
    
    transition:.3s;
}

.menu > * {
    margin-left: 8px;
    margin-right: 8px;
}

.menu a {
    color:white;
    padding:12px;
    font-weight:600;
    font-size:1.2rem;
    text-decoration:none;

    display:inline-block;
    /*transform:skewX(12deg);*/
}

.menu-ite {
    position:relative;
}

.menu:hover .loader {
    display:none;
}
.menu .fa-solid.fa-house {
    display:none;
}
.menu:hover .fa-solid.fa-house {
    display:inline;
}


/* =========================================================
   SUBMENU
========================================================= */

.submenu {
    position:absolute;
    top:100%;
    left:50%;

    transform:translateX(-50%);

    margin-top:0px;
    padding:6px 100px;

    /*min-width:70%;*/
    text-align:center;

    text-decoration:none;
    
    background:linear-gradient(0deg, rgba(150,150,150,1), rgba(170,170,170,1));

    display:none;
    z-index:100;
    
}

.submenu:hover {
    background:linear-gradient(45deg, #ff007f, #ff007f);
    
    transition: 0.3s;
}

.submenu a{
    display:block;
    color:white;
    
}

/*********** LOADER*/
.loader * {
    margin:0;
    padding:0;
    box-sizing: border-box;
}
.loader {
    margin:0;
    padding:0;
    box-sizing: border-box;
    
    position:relative;
    width:30px;
    height:30px;
    border-radius:50%;
    background:linear-gradient(45deg, transparent, transparent 30%, #e5f403);
    animation:animate 2s linear infinite;
}
@keyframes animate {
    0%
    {
        transform: rotate(0deg);
        filter:hue-rotate(0deg);
    }
    100%
    {
        transform: rotate(358deg);
        filter:hue-rotate(360deg);
    }
}
.loader:before {
    content:"";
    position:absolute;
    top:7px;
    left:7px;
    bottom:7px;
    right:7px;
    background: #222;
    border-radius:50%;
    z-index:1000;
}
.loader:after {
    content:"";
    position:absolute;
    top:0px;
    left:0px;
    bottom:0px;
    right:0px;
    background: linear-gradient(45deg, transparent, transparent 30%, #e5f403);
    border-radius:50%;
    z-index:1000;
    z-index:1;
    filter:blur(20px);
}



/* =========================================================
   HERO
========================================================= */

.hero {
    position:relative;
    width:100%;
    height:96vh;
    max-height:1330px;
    overflow:hidden;
    border-bottom:160px solid #ff007f;
}

/* VIDEO CONTAINER */
video {
    z-index:1;
}
.hero-video-container {
    position:absolute;
    inset:0;
    z-index: 1;
    margin-left:10%;
    margin-right:10%;
}

.hero-video-container video {
    height:100%;
    filter:brightness(1.1) contrast(1.1);
    pointer-events: none;
    z-index:2;
    margin-right:100px;
}

/* FULL WIDTH */

.hero-fullwidth video {
    width:100%;
    object-fit:cover;
}

/* CONTAINED VIDEO */

.hero-contained {
    display:flex;
    align-items:center;
}

.hero-align-left{
    justify-content:flex-start;
}

.hero-align-center{
    justify-content:center;
}

.hero-align-right{
    justify-content:flex-end;
}


/* HERO CONTENT */

/* ========= HERO ============= */

.hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    min-height: clamp(500px, 80vh, 900px);
    margin-bottom:180px;
}

/* vignette overlay */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
    linear-gradient(
      to bottom,
      rgba(20,20,20,.9) 0%,
      rgba(20,20,20,.7) 5%,
      rgba(20,20,20,0) 20%
    );
    pointer-events: none;
    z-index: 2;
}

/* container controls layout */
.hero .container {
    position: relative;
    z-index: 3;
    width: 100%;
}


/* ========= HERO CONTENT ============= */

.hero-content {
    position: relative;
    
    max-width: 800px;
    margin-top: auto;
    margin-bottom: 80px;

    padding: 35px 40px;

    border: 1px solid transparent;
    /*border-radius:20px;*/
    background: linear-gradient(-45deg, #7776, rgba(40,40,40,0.3));
    backdrop-filter: blur(6px);

    z-index: 3;

    max-height: 60vh;
    overflow-y: auto;
    
    transition: 0.4s;
}
.hero-content:hover {
    border: 1px solid #ccc8;
    box-shadow: 0 0 100px 0px #fff6;
    
    transition: 0.4s;
}

/* alignment */
.hero-content-left {
    margin-right: auto;
}
.hero-content-right {
    margin-left: auto;
}

/* typography */
.hero-content h1 {
    font-size: 2rem;
    margin: 8px 0;
}

.hero-content h2 {
    font-size: 1.2rem;
    margin: 8px 0;
}

.hero-content p {
    font-size: 1rem;
    margin:6px 0;
    padding:4px;
    background:;
}

.hero-content pre {
    width:100%;
    font-size:14px;
    padding:0 5px 20px 20px;
    border-radius:10px;
    background:#aaa5;
    width:95%;
}

.hero-content pre code {
    white-space: pre-wrap;
    word-break: break-word;
}


/* ========= BUTTONS / FORM ============= */

.hero-buttons {
    margin-top: 20px;
    display: flex;
    gap: 20px;
}

.hero-form > div {
    vertical-align: top;
}


/* ========= VIDEO ============= */

.hero-video-container video {
    width: 100%;
    max-width: 100%;
}

.hero-video-container.hero-fullwidth {
    margin-left:0 !important;
    margin-right:0 !important;
}

/* contained video layout */
.hero-contained {
    display: flex;
    justify-content: center;
}

.hero-align-left {
    justify-content: flex-start;
}

.hero-align-right {
    justify-content: flex-end;
}

/* limit video width when not fullwidth */
.hero-contained video {
    max-width: 900px;
    width: 100%;
}

/*==== HERO MOBILE FIX =====*/
@media (max-width: 900px) {
    body {
        max-width:100vw;
        overflow-x:hidden;
    }
    .hero {
        min-height: auto;
        height:unset;
        padding-top: 120px;
        padding-bottom: 60px;
        align-items: flex-start;
    }

    .hero-video-container {
        position: relative;
        height: 200px;
    }

    .hero-content {
        position:relative;
        width:unset;
        left:0px;
        right:15px;
        margin: 20px 15px 0;
        padding-left:10px;
        padding-right:10px;
    }

    .hero-content h1 {
        font-size: 1.5rem;
    }

    .hero-content h2 {
        font-size: 1rem;
    }
    .container,
    .section {
        width:100%;
        position:relative;
        display:block;
    }
    div.logo {
        visibility: hidden;
    }
    .modern-card {
        width:95%;
        display:block !important;
        max-width:95%;
    }
}


/* =========================================================
   BUTTONS
========================================================= */

.btn{
    display:inline-block;
    transform:skewX(-12deg);
}

.btn span{
    display:inline-block;
    transform:skewX(12deg);
}

.btn-secondary{
    padding:16px 60px;

    font-size:1rem;
    font-weight:bold;

    background:#333;
    background: #878787;
    background: linear-gradient(-90deg, rgba(135, 135, 135, 1) 0%, rgba(38, 38, 38, 1) 100%);
    background-size:300% 300%;
    animation:moveGradient 5s infinite;
    color:white;

    border:none;
}

.btn-secondary:before {
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    height:0px;
    width:0px;
    
    background:#444;
    box-shadow:0 0 30px 5px #444;
    
    transition: 0.3s;
}

.btn-secondary:hover:before{
    top:0;
    left:0;
    height:100%;
    width:100%;
    
    box-shadow:0 0 0 0 #444;
    
    transition: 0.3s;
}

@keyframes moveGradient{
    0%{ background-position:0% 0%; }
    50%{ background-position:150% 0%; }
    100%{ background-position:150% 0%; }
}

.btn-main {
    padding:16px 80px;
    margin-bottom:10px;

    font-size:1.1rem;
    font-weight:bold;

    background: linear-gradient(0deg,  rgba(200,200,200,.1) 53%,rgba(200,200,200,.2) 54%);
    border-radius:15px;
    border:0;

    color:white;

    text-decoration:none;
    
    box-shadow:unset;

    transition: .25s;
}
.btn-main:hover {
    padding:16px 80px;

    font-size:1.1rem;
    font-weight:bold;
    letter-spacing:2px;

    text-decoration:none;
    
    background: linear-gradient(0deg,  rgba(200,200,200,.3) 53%,rgba(200,200,200,.4) 54%);
    /*box-shadow: 0 0 60px 0 #ff007f66;*/

    transition: .25s;
}
.btn-main:before {
    content:"";
    position:absolute;
    top:0;
    left:48%;
    width:20px;
    height:90%;
    border-top:4px solid #ff007f;
    border-bottom:4px solid #ff007f;
    border-radius:0px;

    transition: .25s;
}
.btn-main:hover:before {
    left:0;
    width:100%;
    border-radius:15px;

    transition: .25s;
}


/* =========================================================
   PRODUCT GRID
========================================================= */

.product-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,200px);
    gap:40px;
    padding:20px;
    margin:20px;
}

.product-thumb {
    display:block;
    width:100%;
}

.product-thumb img {
    display:block;
    width:200px;
}

.product-tile {
    display:grid;
    grid-template-columns:1fr;
    padding:10px 15px;

    font-size:1.1rem;
    font-weight:bold;

    color:white;
    text-decoration:none;
    text-align:center;
    background: linear-gradient(0deg,  rgba(200,200,200,.3) 53%,rgba(200,200,200,.4) 54%);
    /*border-top:4px solid #ff007f;
    border-bottom:4px solid #ff007f;*/
    border:8px solid #0004;
    border-radius:15px;

    transition: .25s;
}
.product-tile:hover {
    letter-spacing:1.4px;
    color:white !important;
    
    background: linear-gradient(0deg,  rgba(200,200,200,.6) 53%,rgba(200,200,200,.8) 54%);

    transition: .25s;
}

/****************************************************************************/



/* =========================================================
   CARDS
========================================================= */

.cards-section {
    margin: 40px 0;
}
.cards-section::before {
    position:absolute;
    content:"";
    left:30%;
    top:0px;
    width:140%;
    aspect-ratio:1/1;
    border-radius:50%;
    background:#252525;
    z-index:-1;
}

.news-section,
.changelog-section {
    /*display:block;*/
    padding: 60px 0;
    /*margin-bottom:100px;*/
}

.news-section>div,
.changelog-section>div {
    padding:20px;
    background: #4443;
    display:inline-block;
}

.modern-card {
    display:flex;
    position: relative;
    margin-bottom:120px;
    border-left:8px solid #ff007f;
    
    background:linear-gradient(45deg,#5b6468,#5b6468);
    border-top-left-radius:20px;
    border-bottom-left-radius:20px;
    
    transition:.4s;
}
.modern-card:hover {
    /*background-color:#4f7484;*/
    background:linear-gradient(45deg,#5b6468,#8ca4af);
    
    transition:.6s;
}
.modern-card * {
    z-index:2;
}

.modern-card::before {
  content: "";
  position: absolute;
  top: 0;
  right: -1px;
  width: 234px;
  height: 154px;

  pointer-events: none;

  background: url("/assets/img/decoCubes.svg") repeat-x top right;
  background-size: contain;
}

.modern-card:hover::after {
  content: "";
  position: absolute;
  top: -5px;
  right: -5px;
  left:-5px;
  bottom:-5px;
  
  background:#8ca4af;
  border-radius:15px;
  
  animation: cardBingo 3s infinite;

  pointer-events: none;
  z-index:-1;
}


@keyframes cardBingo {
    0% { opacity: 100%; }
    50% { opacity: 0%; }
    100% { opacity: 100%; }
}

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

.modern-card .card-image {
    width:30%;
}

.modern-card img{
    width:100%;
    object-fit:cover;
}

.cards-section.cs-landing .modern-card {
    /*background: linear-gradient(45deg,#6a0dad44,#ff007f44);
    background: linear-gradient(45deg,#6a0dad44,#00E1FF44);*/
    /*box-shadow:0 0 80px 0 white;*/
}

.cards-section.cs-landing2 .modern-card {
    /*background: linear-gradient(45deg,#6a0dad44,#00E1FF44);*/
    box-shadow:unset;
    /*box-shadow:0 0 80px 0 white;*/
}

.card-content{
    /*flex:1;*/
    padding:40px;
    width:70%;
}

.card-title{
    font-size:1.5rem;
    font-weight:600;
    margin-bottom:20px;
}

.card-links a{
    margin-right:20px;
    color:#ff007f;
    font-weight:600;
    text-decoration:none;
}

.card-links a:hover{
    text-decoration:underline;
}



/* =========================================================
   CHANGELOG
========================================================= */

.changelog-item[data-type="new"] {
    border-left:5px solid #00ff99;
}

.changelog-item[data-type="change"] {
    border-left:5px solid #ffaa00;
}

.changelog-item[data-type="fix"] {
    border-left:5px solid #ff4444;
}


/* =========================================================
   CONTACT
========================================================= */

.contact-form{
    margin-top:250px;
    width:100%;

    display:flex;
    justify-content:center;
}

.contact-form > div{
    max-width:600px;

    display:grid;
    grid-template-columns:180px 1fr;

    gap:12px 20px;
}

.contact-form h1{
    grid-column:1/-1;
    text-align:center;
}

.contact-form label{
    align-self:center;
}


/* =========================================================
   FOOTER
========================================================= */

#peepee {
    position:absolute;
    top:0;
    right:0;
    width:50vw;
    height:40%;
    pointer-events: none;
    z-index:99999999;
    overflow:hidden;
}

footer{
    padding:40px;
    text-align:center;
    background:#111;
    margin-top:300px;
    /*position:fixed;
    bottom:0;
    width:100vw;*/
}


/* =========================================================
   UTILITIES
========================================================= */

.section-space{
    height:200px;
}


/* =========================================================
   ADMIN
========================================================= */

.admin-toolbar{
    position:fixed;
    bottom:0;
    left:0;
    right:0;

    background:#111;
    border-top:2px solid #ff007f;

    padding:10px;

    z-index:2000;
}

.admin-toolbar-inner{
    max-width:1200px;
    margin:auto;

    display:flex;
    justify-content:space-between;
    align-items:center;
}

.admin-toolbar a,
.admin-toolbar button{
    background:#ff007f;
    color:white;
    border:none;
    padding:6px 12px;
    cursor:pointer;
}

.admin-btn {
    display:inline-flex;
    align-items:center;
    gap:6px;

    background:#ff007f;
    color:white;

    border:none;
    padding:6px 10px;

    font-size:0.7rem;
    font-weight:600;

    cursor:pointer;

    transition:all 0.15s ease;
}

.admin-btn:hover {
    background:#ff2a9a;
    transform:translateY(-1px);
}

.edit-hero-btn{
    position:absolute;
    top:20px;
    right:20px;

    z-index:100;
}

.card-admin .admin-btn{
    padding:4px 8px;
}

.hero .admin-btn{
    position:absolute;
    top:20px;
    right:20px;
    font-size:0.9rem;

    z-index:100;
}

.card-admin .admin-btn{
    padding:4px 8px;
    font-size:0.9rem;
}

.cards-admin-bar .admin-btn {
    position:relative;
    font-size:0.9rem;
}

.admin-modal {
    position:fixed;
    inset:0;

    background:rgba(0,0,0,.8);

    display:flex;
    justify-content:center;
    align-items:center;

    z-index:5000;
}

.admin-modal-inner{
    background:#1e1e1e;
    padding:40px;

    width:600px;
    max-width:90vw;

    border:1px solid #666;
}

.admin-modal input,
.admin-modal textarea,
.admin-modal select{
    width:100%;
    margin-bottom:12px;
}

.card-admin{
    position:relative;
    top:10px;
    right:10px;

    display:flex;
    gap:8px;

    z-index:20;
}

.admin-add-card{
    margin:40px 0;
    display:flex;
    justify-content:center;
}

.cards-admin-bar{
    margin-bottom:40px;

    display:flex;
    justify-content:flex-end;
}

.news-admin{
    position:relative;
    top:10px;
    right:10px;

    display:flex;
    gap:6px;
}

.news-admin-bar{
    margin-bottom:40px;
    display:flex;
    justify-content:flex-end;
}

/* =========================
   ADMIN LAYOUT SYSTEM
========================= */

.admin-bar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:10px;
}

.admin-actions {
    display:flex;
    gap:6px;
}

.cl-item {
    position:relative;
    padding:10px 10px 10px 15px;
}

.cl-item .admin-actions {
    position:absolute;
    top:5px;
    right:5px;
}

/* =========================
   HOVER ADMIN SYSTEM
========================= */

.admin-actions {
    opacity: 0;
    transition: opacity 0.2s ease;

    background: rgba(0,0,0,0.4);
    padding:4px;
    border-radius:4px;
}

.changelog-block:hover .admin-actions,
.cl-item:hover .admin-actions,
.modern-card:hover .admin-actions,
.news-item:hover .admin-actions {
    opacity: 1;
}


.hidden{
    display:none;
}








/************ PARTICLES *************/

