/* =========================================================
   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:linear-gradient(45deg,#1e1e1e,#2a2a2a);
    overflow-x:hidden;
}

h1{
    font-weight:bold;
}

input, textarea{
    padding:10px 18px;
    margin:10px 0;
    border-radius:0;
}

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

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

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;
}

.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:20px;
    left:40px;
    z-index:200;
    padding:20px;
}

.logo a{
    display:block;
}

.logo img{
    display:block;
    max-width:30vw;
}


/* =========================================================
   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;

    background:linear-gradient(45deg,#6a0dadaa,#ff007faa);
    border:1px solid;
    border-image:linear-gradient(45deg,#6a0dad,#ff007f) 1;

    transform:skewX(-12deg);

    backdrop-filter:blur(10px);
}

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

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

.menu-ite {
    position:relative;
}


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

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

    transform:translateX(-50%);

    margin-top:10px;
    padding:10px;

    width:100%;
    text-align:center;

    background:linear-gradient(45deg,#6a0dad,#ff007f);

    display:none;
    z-index:100;
}

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


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

.hero{
    position:relative;
    width:100%;
    height:80vh;
    overflow:hidden;
}

/* 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(.9) contrast(1.2);
    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);
}

/* vignette overlay */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse at center,
        rgba(0,0,0,0) 0%,
        rgba(0,0,0,0.7) 100%
    );
    pointer-events: none;
    z-index: 2;
}

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


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

.hero-content {
    position: relative; /* unified (removed absolute ❌) */
    
    max-width: 800px;
    margin-top: auto;
    margin-bottom: 80px;

    padding: 20px;

    border: 1px solid #ccc8;
    box-shadow: 0 0 10px 0px #fff3;
    border-radius:20px;
    background: linear-gradient(-45deg, #7776, rgba(10,10,10,0.05));
    backdrop-filter: blur(6px);

    z-index: 3;

    /* prevent overflow on small height screens */
    max-height: 70vh;
    overflow-y: auto;
}

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

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

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

.hero-content p {
    font-size: 1rem;
    margin-bottom: 30px;
}

.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) {

    .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 {
        margin: 20px 0 0;
        max-width: 100%;
    }

    .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-main{
    padding:16px 80px;

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

    color:white;

    background:linear-gradient(-45deg,#6a0dad,#ff007f);
    background-size:300% 100%;

    border:none;
    text-decoration:none;

    animation:moveGradient 5s linear infinite;
}

.btn-main:hover{
    background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.6));
    color:black;
}

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

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

    background:#333;
    color:white;

    border:none;
}

.btn-secondary:hover{
    background:#444;
}

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


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

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

.product-tile{
    display:block;
    position:relative;
    text-decoration:none;

    width: 150px;
    height: 150px;
    background: #3336;
}

.product-thumb{
    position:relative;
    overflow:hidden;
}

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

.product-title{
    position:absolute;
    bottom:20px;
    left:20px;

    font-size:1.1rem;
    color:white;
}


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

.cards-section {
    padding: 60px 0;
}

.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:40px;
    border:0px;
    background: linear-gradient(45deg,#6a0dad,#00EEFF);
}

.modern-card::before {
    content: "";
    position: absolute;
    inset: -1px; /* thickness of border */
    border-radius: inherit;
    background: linear-gradient(270deg, #6a0dad, #ff007f, #6a0dad);
    background-size: 400% 400%;
    z-index: -1;

    animation: gradientMove 8s linear infinite;
}

.modern-card::after {
    content: "";
    position: absolute;
    inset: 1px;
    background: #111;
    border-radius: inherit;
    z-index: -1;
}

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

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

.modern-card img{
    max-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:unset;
}

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

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

.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
========================================================= */

footer{
    padding:40px;
    text-align:center;
    background:#1e1e1e;
}


/* =========================================================
   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;
}