/*************************************************
**************************************************
    Copyright © 2025 GoBadri. All Rights Reserved.
    Brand Identity Designer, UI/UX Designer @GoBadri
    May 2025 | Version 1.0
------------------------------------------------
----------------------------------------------*/


@font-face {
    font-family: 'Bukra'; /* You give it a name here */
    src: url('ar-font/29ltbukraregular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Bukra'; /* You give it a name here */
    src: url('ar-font/29ltbukralight.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'Bukra'; /* You give it a name here */
    src: url('ar-font/29ltbukrabold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

:root {
    --ff: "Nunito", sans-serif;
    --ff-arabic: "Bukra", sans-serif;
    --fw-100: 100;
    --fw-200: 200;
    --fw-300: 300;
    --fw-400: 400;
    --fw-500: 500;
    --fw-600: 600;
    --fw-700: 700;
    --fw-800: 800;
    --fw-900: 900;

    --clr-neutral-100: hsl(0, 0%, 100%);
    --clr-neutral-200: hsl(0, 0%, 90%);
    --clr-neutral-300: hsl(0, 0%, 70%);
    --clr-neutral-400: hsl(0, 0%, 60%);
    --clr-neutral-500: hsl(0, 0%, 50%);
    --clr-neutral-600: hsl(0, 0%, 40%);
    --clr-neutral-700: hsl(0, 0%, 30%);
    --clr-neutral-800: hsl(0, 0%, 20%);
    --clr-neutral-900: hsl(0, 0%, 0%);

    --clr-accent-100: #d5aad5;
    --clr-accent-200: #4148bf;
    --clr-accent-400: #8766cc;
    --clr-accent-400-trans: hsl(259, 50%, 60%, .75);
    --clr-accent-600: #24283d;
    --clr-accent-800: #16161a;
    --clr-brand-1: #4148bf;
    --clr-brand-2: #8766cc;

    --clr-gradient-1: hsl(237, 50%, 50%, .85);
    --clr-gradient-2: hsl(259, 50%, 60%, .85);
    --clr-gradient-3: hsl(237, 50%, 50%, .5);
    --clr-gradient-4: hsl(259, 50%, 60%, .5);
    

    --brand-gradient: linear-gradient(
        115deg,
        var(--clr-accent-200) -15%,
        var(--clr-accent-400) 100%
    );

    --gradient: linear-gradient(
        115deg,
        var(--clr-accent-200) -15%,
        var(--clr-accent-400) 100%
    );

    --gradient-trans: linear-gradient(
        115deg,
        var(--clr-gradient-3) -15%,
        var(--clr-gradient-4) 100%
    );

    --clr-blue: #88e5e6;
    --clr-red: #e68892;
    --clr-intersect: #8e505d;
    --clr-blue-darker: #4cc5c9;
    --clr-red-darker: #da6571;

    --background: var(--clr-neutral-200);
    --foreground: var(--clr-neutral-100);
    --surface: var(--clr-neutral-900);
    --surface-dark: var(--clr-neutral-300);
    --text-bright: var(--clr-neutral-900);
    --text-dim: var(--clr-brand-1);
    --text-black: var(--clr-neutral-900);
    --clr-nav-close: var(--gradient-trans);
    --clr-nav-open: var(--clr-gradient-1);
    --shadow: var(--clr-neutral-400);
    --accent: var(--clr-brand-1);
    --accent-inverted: var(--clr-brand-2);
    --white: var(--clr-neutral-100);
    --clr-header: var(--gradient-trans);

    @media (prefers-color-scheme: dark) {
        --background: var(--clr-neutral-800);
        --foreground: var(--clr-neutral-700);
        --surface: var(--clr-neutral-100);
        --surface-dark: var(--clr-neutral-300);
        --text-bright: var(--clr-neutral-100);
        --text-dim: var(--clr-brand-1);
        --text-black: var(--clr-neutral-900);
        --clr-nav-close: var(--gradient-trans);
        --clr-nav-open: var(--clr-gradient-1);
        --shadow: var(--clr-neutral-900);
        --accent: var(--clr-brand-1);
        --accent-inverted: var(--clr-brand-2);
        --white: var(--clr-neutral-100);
        --clr-header: var(--gradient-trans);
    }

    --border-radius: 1rem;
    --flex-dir: row;
    --gap: 1rem;
    --fs: 1rem;
    --width: 80%;
    --space-top: 95svh;

    [data-theme="dark"] {
        --background: var(--clr-neutral-800);
        --foreground: var(--clr-neutral-700);
        --surface: var(--clr-neutral-100);
        --surface-dark: var(--clr-neutral-300);
        --text-bright: var(--clr-neutral-100);
        --text-dim: var(--clr-brand-1);
        --text-black: var(--clr-neutral-900);
        --clr-nav-close: var(--gradient-trans);
        --clr-nav-open: var(--clr-gradient-1);
        --shadow: var(--clr-neutral-900);
        --accent: var(--clr-brand-1);
        --accent-inverted: var(--clr-brand-2);
        --white: var(--clr-neutral-100);
        --clr-header: var(--gradient-trans);
    }

    [data-theme="light"] {
        --background: var(--clr-neutral-200);
        --foreground: var(--clr-neutral-100);
        --surface: var(--clr-neutral-900);
        --surface-dark: var(--clr-neutral-300);
        --text-bright: var(--clr-neutral-900);
        --text-dim: var(--clr-brand-1);
        --text-black: var(--clr-neutral-900);
        --clr-nav-close: var(--gradient-trans);
        --clr-nav-open: var(--clr-gradient-1);
        --shadow: var(--clr-neutral-400);
        --accent: var(--clr-brand-1);
        --accent-inverted: var(--clr-brand-2);
        --white: var(--clr-neutral-100);
        --clr-header: var(--gradient-trans);
    }
}


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


/* Cursor */
html,
body {
    cursor: url(/cursor.svg), auto;
    scroll-behavior: smooth;
    scroll-snap-align: start;
}

/* Text selection */
::-moz-selection {
    color: var(--clr-red);
    background: var(--clr-blue);
}

::selection {
    color: var(--clr-red);
    background: var(--clr-blue);
}

/* Scroll Bar */
::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar {
    width: 10px;
    height: 80%;
}

::-webkit-scrollbar-track {
    background: #000;
    border-radius: 100vw;
}

::-webkit-scrollbar-thumb {
    background: #88e5e6;
    border-radius: 100vw;
    border: solid 2px #000;
}

::-webkit-scrollbar-thumb:hover {
    background: #e68892;
}

/*----------------------------------------------
------------------------------------------------
1. Universal Styles
------------------------------------------------
----------------------------------------------*/
body {
    font-family: var(--ff);
    background-color: var(--background);
}

h1 {
    color: var(--clr-brand-2);
    font-weight: var(--fw-800);
    font-size: calc(var(--fs) * 3);
}

h2 {
    color: var(--clr-brand-2);
    font-weight: var(--fw-600);
    font-size: calc(var(--fs) * 1.5);
    margin-block: var(--gap);
}

h3 {
    color: var(--clr-accent-100);
    font-weight: var(--fw-600);
    font-size: calc(var(--fs) * 1.2);
    line-height: 4em;
}

h5 {
    color: var(--text-bright);
    font-weight: var(--fw-600);
    font-size: var(--fs);
}

p {
    color: var(--text-bright);
    font-weight: var(--fw-400);
    font-size: calc(var(--fs) / 1.1);
    max-width: 100% !important;
}

ol, ul {
    color: var(--text-bright);
    font-weight: var(--fw-400);
    font-size: calc(var(--fs) / 1.1);
    max-width: 100% !important;
    margin-left: 2.5ch;
    margin-top: .5lh;
    line-height: 1.5em;
}

button {
    background: none;
    cursor: pointer;
    border: 2px solid var(--text-bright);
    border-radius: calc(var(--gap) * 0.5);
    padding: calc(var(--gap) * 0.5) calc(var(--gap) * 1);
    color: var(--text-bright);
    font-family: var(-ff);
    font-size: calc(var(--fs) * 1.2);
    transition: all 250ms ease-in;
}

button:hover {
    border-radius: calc(var(--gap) * 0.75);
    color: var(--background);
    background: var(--surface);
    font-family: var(-ff);
}

table,
th,
td {
    border: 1px solid var(--background);
    border-collapse: collapse;
    padding: 0.5rem 1rem;
    color: var(--text-bright);
    font-size: calc(var(--fs) * 0.85);
    justify-self: canter;
    margin-block-start: calc(var(--gap) * 2.5);

    @media (width > 60em) {
        justify-self: start;
    }
}
th,
td {
    background: var(--clr-gradient-1);
    text-align: start;
}

[data-theme="dark"] {
    th,
    td {
        background: var(--clr-gradient-3);
    }
}

td {
    min-width: 18rem;
}

.spacer {
    width: 100%;
    height: 10vh;
    background-color: transparent;
}

/*----------------------------------------------
------------------------------------------------
2. Header & Nav Styles
------------------------------------------------
----------------------------------------------*/

header {
    position: fixed;
    top: var(--gap);
    left: 50%;
    transform: translateX(-50%);
    background: var(--brand-gradient);
    backdrop-filter: blur(10px);
    width: 95%;
    border-radius: 100vh;

    z-index: 999;

    @media (width > 70em) {
        width: 85%;
    }
}

[data-theme="light"]{
    header {
        background: var(--gradient);
    }
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* padding: 0 calc(var(--gap)*3); */
    width: 90%;
    margin-inline: auto;
}

.header-container svg {
    --factor: 3rem;

    width: var(--factor);

    @media (width > 35em) {
        --factor: 4.5rem;
    }
}

.header-container svg #path1236 {
    fill: var(--clr-blue);
}

.header-container svg #path1241 {
    fill: var(--clr-red);
}

.header-container svg #path1250 {
    fill: var(--clr-intersect);
}

.header-container svg #path1243 {
    fill: var(--surface);
}

.back-btn > a {
    display: grid;
    place-content: center;
    gap: calc(var(--gap) * 1.2);
    text-align: center;
    text-decoration: none;
}

.back-btn > a:hover .back-arrow {
    opacity: 1;
    animation: none;
}

.back-arrow {
    --arrow-stroke: 1px;

    position: relative;
    height: var(--arrow-stroke);
    aspect-ratio: 15 / 1;
    border-radius: 100vh;
    transform-origin: left;
    background-color: var(--surface);
    margin-inline: auto;
    opacity: 0.25;
    animation-name: arrow;
    animation-duration: 6s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transition: all 250ms ease;

    &::before,
    &::after {
        position: absolute;
        content: "";
        left: 0;
        top: 0;
        height: inherit;
        aspect-ratio: 5 / 1;
        background-color: inherit;
        transform-origin: inherit;
        border-radius: 100vh;
    }

    &::before {
        rotate: -30deg;
    }

    &::after {
        rotate: 30deg;
    }

    @media (width > 50em) {
        --arrow-stroke: 2px;
    }
}

@keyframes arrow {
    0% {
        transform: translateX(0);
    }
    60% {
        transform: translateX(0);
    }
    80% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}

.socialmedia ul {
    display: flex;
    list-style: none;
    gap: var(--gap);
}

.socialmedia ul img {
    --factor: 1.5;

    width: calc(var(--gap) * var(--factor));
    filter: brightness(0) invert(0);
    transition: all 250ms ease-in;

    @media (prefers-color-scheme: dark) {
        filter: brightness(0) invert(1);
    }
}

.nav-icon ul img {
    filter: brightness(0) invert(1) !important;

    @media (prefers-color-scheme: dark) {
        filter: brightness(0) invert(0) !important;
    }
}

[data-theme="light"] {
    .socialmedia ul img {
        filter: brightness(0) invert(0);
    }

    .nav-icon ul img {
        filter: brightness(0) invert(1) !important;
    }
}

[data-theme="dark"] {
    .socialmedia ul img {
        filter: brightness(0) invert(1);
    }

    .nav-icon ul img {
        filter: brightness(0) invert(0) !important;
    }
}

.socialmedia ul img:hover,
.nav-icon ul img:hover {
    filter: brightness(1) invert(0) !important;
}

nav {
    background: var(--clr-nav-close);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    position: fixed;
    left: var(--gap);
    top: 50%;
    transform: translateY(-50%);
    transform-origin: left;
    width: 0.5rem;
    height: 60svh;
    border-radius: calc(var(--border-radius) * 1.5);
    transition: all 250ms ease;

    @media (width > 50em) {
        width: 1rem;
    }

    & a{
        color: var(--text-bright) !important;
    }
}

nav::after {
    position: absolute;
    content: "";
    width: 0.125rem;
    border-radius: 100vh;
    aspect-ratio: 1/24;
    background-color: var(--clr-accent-800);
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);

    @media (width > 50em) {
        width: 0.25rem;
    }
}

nav:hover,
nav:focus-within {
    transform: translate(0, -50%);
    background-color: var(--clr-nav-open);
    width: 20rem;

    &::after {
        right: 0.25rem;
        left: auto;
    }
}

.nav-wrapper {
    display: none;
}

nav:hover .nav-wrapper,
nav:focus-within .nav-wrapper {
    display: grid !important;
    height: 100%;
    grid-template-rows: 1fr auto;
    inset: 0;
    padding: calc(var(--gap) * 3) calc(var(--gap) * 3.5) calc(var(--gap) * 3)
        calc(var(--gap) * 2.5);
}

.main-nav ul {
    list-style: none;
    display: grid;
    gap: calc(var(--gap) * 0.5);
}

.main-nav ul li a {
    text-decoration: none;
    text-transform: uppercase;
    color: var(--accent);
    display: inline-block;
    width: 100%;
    padding: 1rem 0.5rem;
    transition: all 350ms ease;
}

.main-nav ul li a:hover {
    color: var(--white);
    background-color: var(--accent-inverted);
}

/*----------------------------------------------
------------------------------------------------
THEME TOGGLE
------------------------------------------------
----------------------------------------------*/

/* Container for the switch and text */
.theme-switch-wrapper {
    display: grid;
    place-content: center;
    gap: calc(var(--gap) * 0.5);
}

.theme-toggle-description,
.back-btn-description {
    text-transform: uppercase;
    font-weight: 300;
    letter-spacing: 0.125em;
    font-size: calc(var(--fs) * 0.65);
}

/* The actual label that becomes the switch track */
.theme-switch {
    --track-width: 3rem;
    --track-height: 1.5rem;

    position: relative;
    display: inline-block;
    width: var(--track-width); /* Width of the track */
    height: var(--track-height); /* Height of the track */
    justify-self: center;

    @media (width > 50em) {
        --track-width: 4rem;
        --track-height: 2rem;
    }
}

/* Hide the default browser checkbox */
.theme-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

/* The slider/track itself */
.slider {
    --track-padding: 4px;

    position: absolute;
    cursor: pointer;
    inset: 0;
    background: var(--clr-brand-1) !important;
    border: var(--track-padding) solid var(--clr-brand-1);

    transition: 0.4s;
    border-radius: 100vh;
}

[data-theme="dark"]{
    .slider {
        background: var(--clr-brand-2) !important;
        border: var(--track-padding) solid var(--clr-brand-2);
    }
}

/* The circular thumb/handle */
.slider:before {
    position: absolute;
    content: "";
    height: 100%; /* Size of the thumb */
    aspect-ratio: 1 / 1;
    left: 0; /* Starting position inside the track */
    bottom: 0;
    background-color: var(--text-bright); /* Light color for the thumb */
    transition: 0.4s;
    border-radius: 100vh; /* Makes the thumb circular */
}

.slider:after {
    position: absolute;
    content: "";
    aspect-ratio: 1 / 1;
    left: 0; /* Starting position inside the track */
    top: 0;
    background-image: url(/assets/img/darktheme.svg);
    background-repeat: no-repeat;
    object-fit: cover;
    background-size: calc(var(--track-height) - calc(var(--track-padding) * 2));
    width: 100%;
    aspect-ratio: 1 / 1;
    transition: 0.4s;
}

/* * Styles when the checkbox is checked (Dark mode is ON)
 * The [data-theme="dark"] selector is used here to match the site's colors
 * when the dark theme is active, regardless of the system setting.
 */

/* Move the slider thumb to the right when checked */
#theme-toggle:checked + .slider:before {
    --translate: calc(var(--track-height) - calc(var(--track-height) * 0.1));

    transform: translateX(
        var(--translate)
    ); /* 60px (track width) - 34px (track height) = 26px */
}

#theme-toggle:checked + .slider:after {
    --translate: calc(var(--track-height) - calc(var(--track-height) * 0.1));

    transform: translateX(
        var(--translate)
    ); /* 60px (track width) - 34px (track height) = 26px */
    background-image: url(/assets/img/lighttheme.svg);
}

/* Change the track background color when checked */
#theme-toggle:checked + .slider {
    background-color: var(--background); /* A distinct color for "on" */
}

/* * Additional Styling for Light/System Theme
 * Let's change the color of the text next to the toggle
 */
body[data-theme="dark"] .theme-text {
    color: var(--text-bright);
}

/*----------------------------------------------
------------------------------------------------
3. Main Body Styles
------------------------------------------------
----------------------------------------------*/

.hero {
    width: 100%;
    height: 100svh;
    position: fixed;
    transform: translateY(calc(var(--space-top) * -1));
    z-index: -1;
    filter: blur(0px);
    transition: filter 350ms ease;
}

.hero .container {
    gap: calc(var(--gap) * 0.25);
}

.hero h1 {
    justify-self: start;
    color: var(--text-bright);
    margin-top: 40svh !important;

    @media (width > 50em) {
        margin-top: 15vh !important;
    }

    @media (width > 75em) {
        margin-top: 35vh !important;
    }
}

.hero h3 {
    justify-self: start;
    color: var(--text-dim);
}

.hero a {
    justify-self: start;
    margin-top: var(--gap);
}

.scrolldownshape {
    --shape-width: 1.2rem;
    --shape-height: calc(var(--shape-width) * 1.5);
    --shape-stroke: 2px;

    margin-inline: auto;
    margin-block-start: 2rem !important;
    position: relative;
    width: var(--shape-width);
    height: var(--shape-height);
    border-radius: 100vh;
    border: var(--shape-stroke) solid var(--surface);
    opacity: 0.5;
    animation-name: mouse;
    animation-duration: 4.5s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transition: all 250ms ease;

    @media (width > 50em) {
        --shape-width: calc(1.2rem * 1.7);

        margin-block-start: 5rem !important;
    }
}

@keyframes mouse {
    0% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(10px);
    }
    80% {
        transform: translateY(10px);
    }
    100% {
        transform: translateY(0);
    }
}

.scrolldownshape:hover {
    opacity: 1;
}

.scrolldownshape::before {
    position: absolute;
    content: "";
    width: var(--shape-stroke);
    transform: translateY(var(--shape-stroke));
    aspect-ratio: 1 / 7;
    background-color: var(--surface);
    top: 0;
    left: 50%;
    transform: translateX(-50%);

    @media (width > 50em) {
        aspect-ratio: 1 / 12;
    }
}

.scrolldownshape::after {
    position: absolute;
    content: "SCROLL DOWN";
    font-family: inherit;
    font-weight: 200;
    text-align: center;
    font-size: calc(var(--fs) * 0.55);
    color: var(--surface);
    left: 50%;
    transform: translateX(-50%);
    letter-spacing: calc(var(--fs) * 0.25);
    top: calc(var(--shape-height) * 1.07);
}

main {
    width: 80%;
    background: var(--foreground);
    margin-inline: auto;
    margin-block-start: var(--space-top);
    margin-block-end: 2.5vh;
    padding: 10rem 5rem;
    border-radius: calc(var(--border-radius) * 3);
}

.container {
    margin-inline: auto;
    max-width: var(--width);
    display: grid;
    place-items: center;
    gap: var(--gap);
}

.page-title {
    display: grid;
    place-items: center;

    h2 {
        color: var(--surface) !important;
    }
}

.text-only {
    width: 100%;
    text-align: center;

    @media (width > 50em) {
        text-align: start;
    }
}

.collage-special {
    display: grid;
    grid-template-areas:
        "one"
        "two"
        "three"
        "four"
        "five";
    margin-block: calc(var(--gap) * 2);
    gap: var(--gap);

    @media (width > 50em) {
        grid-template-areas:
            "two one four"
            "three one five";
    }
}

.collage-special img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    padding: calc(var(--gap) * 2);
}

.one {
    @media (width > 50em) {
        grid-area: one;
        height: 100%;
        aspect-ratio: 5 / 8 !important;
        object-fit: contain !important;
    }
}

.two {
    grid-area: two;
}

.three {
    grid-area: three;
}

.four {
    grid-area: four;
}

.five {
    grid-area: five;
}

.collage {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    overflow: hidden;
}

.collage img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
}

.feature {
    @media (width > 50em) {
        grid-column: span 2;
        grid-row: span 2;
    }
}

.feature-block {
    aspect-ratio: 5 / 4 !important;

    @media (width > 50em) {
        grid-row: span 2;
        aspect-ratio: 5 / 8 !important;
    }
}

.feature-inline {
    aspect-ratio: 5 / 4 !important;

    @media (width > 50em) {
        grid-column: span 2;
        aspect-ratio: 10 / 4 !important;
    }
}

.img-right,
.img-left {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: calc(var(--gap) * 3);
}

.img-left img {
    grid-row: span 2;
    grid-column: span 2;
}

.img-left .content {
    grid-row: span 2;
    grid-column: span 2;
}

.img-right .content {
    @media (width > 50em) {
        grid-column: 1 / 3;
        grid-row: 1 / -1;
    }
}

.img-right img {
    @media (width > 50em) {
        grid-column: 3;
        grid-row: 1 / -1;
    }
}

.img-right img,
.img-left img {
    width: 100%;
    object-fit: cover;
    object-position: top center;
    border-radius: calc(var(--border-radius) * 2);
    padding: calc(var(--gap) * 8);
}

.small-padding {
    padding: calc(var(--gap) * 1.5) !important;
}

.white-BG {
    background-color: var(--white);
}

.blue-BG {
    background-color: var(--clr-brand-1);
}

.grey-BG {
    background-color: var(--clr-neutral-300);
}

.Brand-1-BG {
    background: var(--brand-gradient);
}

.Brand-2-BG {
    background-color: var(--clr-accent-400);
}

.gradient-BG {
    background: var(--brand-gradient);
}

.img-right .content,
.img-left .content {
    align-self: center;
}

.img-top {
    width: 100%;
    margin-block: calc(var(--gap) * 2);
}

.img-top svg,
.img-top img {
    width: 100%;
    border-radius: calc(var(--border-radius) * 2);
}

#svgGradientFill stop:nth-child(1) {
    stop-color: var(--clr-brand-2);
    stop-opacity: 1;
}

#svgGradientFill stop:nth-child(2) {
    stop-color: var(--clr-brand-3);
    stop-opacity: 1;
}

.img-top svg #rect1 {
    fill: url(#svgGradientFill);
}

.img-top svg #g10263 {
    fill: var(--surface-dark);
}

[data-theme="light"] {
    .img-top svg #circles,
    .img-top svg #lines {
        stroke: var(--clr-brand-1);
        stroke-width: 0.5;
        fill: none;
    }
}

[data-theme="dark"] {
    .img-top svg #circles,
    .img-top svg #lines {
        stroke: var(--clr-brand-2);
        stroke-width: 0.5;
        fill: none;
    }
}

.full-width-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: calc(var(--gap) * 2);
    margin-block: var(--gap);
}

.grid {
    width: 100%;
    margin-top: calc(var(--gap) * 5);
    display: grid;
    place-items: center;
    gap: calc(var(--gap) * 1);
}

.grid h3 {
    justify-self: start;
}

.grid-content {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: calc(var(--gap) * 1);
}

.grid-item {
    width: 100%;
    display: grid;
    padding: calc(var(--gap) * 1);
    place-items: center;
    gap: calc(var(--gap) / 3);
    border: 0.5px solid var(--surface);
    overflow: hidden;
}

.grid-item svg {
    width: 100%;
    grid-row: 1 / -1;
}

.grid-item svg > path {
    fill: var(--text-bright);
}

.full-width {
    width: 100% !important;
    object-fit: cover;
}

.full-width-item {
    width: 100%;
    padding: calc(var(--gap) * 2);
    margin: 0;
    overflow: hidden;
    border: none;
    background-color: var(--surface-dark);
    padding: calc(var(--gap) * 0.5);
    gap: calc(var(--gap) * 0.062);
}

.full-width-item h3 {
    color: var(--surface-dark);
}

.whiteBG {
    background-color: var(--white);
    padding: calc(var(--gap) * 2.5);
}

.whiteBG h3 {
    color: var(--text-bright) !important;
}

.whiteBG p {
    color: var(--text-dim);
}

.gallery-item {
    margin: 0;
    padding: 0;
    height: fit-content;
    display: grid;
    gap: calc(var(--gap) / 2.5);
}

.gallery-item h3 {
    padding-left: calc(var(--gap) * 1.5);
    margin-top: 1rem;
    text-decoration: none;
    color: var(--text-bright);
}

.gallery-item p {
    padding-left: calc(var(--gap) * 1.5);
    font-style: italic;
    color: var(--text-dim);
}

.grid-item a button {
    border: 1px solid var(--surface);
    font-size: calc(var(--fs) * 0.85);
}

.grid-item img {
    width: 100%;
}

.grid-item h5 {
    place-self: start;
}

section {
    width: 100%;
    gap: calc(var(--gap) * 3);

    h2 {
        color: var(--surface-dark) !important;
        text-align: center;
        margin-block: var(--gap);
    }
}

.gallery {
    width: 100%;
    margin-top: calc(var(--gap) * 2);
    display: grid;
    gap: var(--gap);
    padding: 0;
}

.project-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.project-type {
    position: relative;
    background-color: var(--surface-dark);
    color: var(--text-dim);
    margin-inline-end: calc(var(--gap) * 1.5);
    padding-inline-end: calc(var(--gap) * 1.5);
    padding-block: calc(var(--gap) * 0.4);
}

.project-type::before {
    position: absolute;
    content: "#";
    translate: calc(var(--gap) * -0.6) 0;
}

.projects {
    display: inline-block;
}

.projects img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    padding: 0 !important;
}

.projects:first-child {
    grid-row: span 2;
    grid-column: span 2;
    aspect-ratio: 1 / 1.25;
}

.values {
    margin-block: 7rem;
}

.number-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: calc(var(--gap) * 5);
    place-content: center;
    margin-block-start: 3rem;
}

.number-grid-item {
    width: 100%;
    text-align: center;
}

.big-number {
    font-family: "Bebas Neue", sans-serif;
    font-size: calc(var(--fs) * 8);
    font-weight: 900;
    line-height: 7rem;
    color: var(--accent-inverted);
    z-index: 1 !important;
}

.images-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: var(--gap);

    img {
        width: 100%;
        height: calc(100% + calc(var(--gap)*.05));
        background-color: var(--white);
        object-fit: cover;
    }

    @media (width > 50em) {
        img:nth-child(1) {
            grid-column: span 2;
            grid-row: span 2;
        }

        img:nth-child(n+2) {
            grid-column: span 2;
            height: 100% !important;
        }
    }
}

.color-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap);

    @media (width > 70em) {
        grid-template-columns: repeat(3, 1fr);
    }
}

.color-content {
    width: 100%;
}

.color-content p {
    font-size: var(--fs);
}

.color-content ol {
    margin-inline-start: 2rem;
    margin-block-start: 0.5rem;
    color: var(--surface);
}

.color-content ol li {
    font-size: var(--fs);
}

.color-value {
    aspect-ratio: 2.3 / 1;
    padding: var(--gap);
}

.color-value:nth-of-type(1) {
    background: var(--brand-gradient);

    p {
        color: var(--white);
    }

    @media (width > 50em) {
        aspect-ratio: 6.9 / 1 !important;
        grid-column: 1 / -1;
        grid-row: 1;
    }
}

.color-value:nth-of-type(2) {
    background-color: var(--clr-accent-100);

    p {
        color: var(--text-bright);
    }

    @media (width > 50em) {
        
        grid-column: 1 / 2;
        grid-row: 2;
    }
}

.color-value:nth-of-type(3) {
    background-color: var(--clr-accent-200);

    p {
        color: var(--white);
    }

    @media (width > 50em) {
        
        grid-column: 2 / 3;
        grid-row: 2;
    }
}

.color-value:nth-of-type(4) {
    background-color: var(--clr-accent-400);

    p {
        color: var(--white);
    }

    @media (width > 50em) {
        grid-row: 2;
        grid-column: 3 / 4;
    }
}

/* .color-pallete{

  @media (width < 540px){
    display: none;
  }
} */

.color-items-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(var(--gap) * 1.2);

    @media (width > 70em) {
        grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
        align-items: end;
    }
}

.color-item {
    width: 100%;
    display: grid;
    grid-template-columns: 25% 1fr;
    gap: calc(var(--gap) * 1);
}

.palette-circle {
    --circle-size: 100%;

    position: relative;
    width: var(--circle-size);
    aspect-ratio: 1 / 1;
    border-radius: 100vh;
    background: conic-gradient(
        var(--clr-1) 30deg,
        var(--clr-2) 30deg 60deg,
        var(--clr-3) 60deg 90deg,
        var(--clr-4) 90deg 120deg,
        var(--clr-5) 120deg 150deg,
        var(--clr-6) 150deg 180deg,
        var(--clr-7) 180deg 210deg,
        var(--clr-8) 210deg 240deg,
        var(--clr-9) 240deg 270deg,
        var(--clr-10) 270deg 300deg,
        var(--clr-11) 300deg 330deg,
        var(--clr-12) 330deg 360deg
    );
}

.color-1 {
    --h: 300;
    --s: 34%;

    --clr-1: hsl(var(--h), var(--s), 75%);
    --clr-2: hsl(var(--h), var(--s), 77%);
    --clr-3: hsl(var(--h), var(--s), 79%);
    --clr-4: hsl(var(--h), var(--s), 81%);
    --clr-5: hsl(var(--h), var(--s), 83%);
    --clr-6: hsl(var(--h), var(--s), 85%);
    --clr-7: hsl(var(--h), var(--s), 87%);
    --clr-8: hsl(var(--h), var(--s), 89%);
    --clr-9: hsl(var(--h), var(--s), 91%);
    --clr-10: hsl(var(--h), var(--s), 93%);
    --clr-11: hsl(var(--h), var(--s), 95%);
    --clr-12: hsl(var(--h), var(--s), 97%);

    & p {
        color: var(--text-black) !important;
    }
}

.color-2 {
    --h: 237;
    --s: 50%;

    --clr-1: hsl(var(--h), var(--s), 50%);
    --clr-2: hsl(var(--h), var(--s), 55%);
    --clr-3: hsl(var(--h), var(--s), 60%);
    --clr-4: hsl(var(--h), var(--s), 65%);
    --clr-5: hsl(var(--h), var(--s), 70%);
    --clr-6: hsl(var(--h), var(--s), 75%);
    --clr-7: hsl(var(--h), var(--s), 80%);
    --clr-8: hsl(var(--h), var(--s), 85%);
    --clr-9: hsl(var(--h), var(--s), 90%);
    --clr-10: hsl(var(--h), var(--s), 93%);
    --clr-11: hsl(var(--h), var(--s), 95%);
    --clr-12: hsl(var(--h), var(--s), 97%);

    & p {
        color: var(--white) !important;
    }
}

.color-3 {
    --h: 259;
    --s: 50%;

    --clr-1: hsl(var(--h), var(--s), 60%);
    --clr-2: hsl(var(--h), var(--s), 63%);
    --clr-3: hsl(var(--h), var(--s), 65%);
    --clr-4: hsl(var(--h), var(--s), 67%);
    --clr-5: hsl(var(--h), var(--s), 70%);
    --clr-6: hsl(var(--h), var(--s), 75%);
    --clr-7: hsl(var(--h), var(--s), 80%);
    --clr-8: hsl(var(--h), var(--s), 85%);
    --clr-9: hsl(var(--h), var(--s), 90%);
    --clr-10: hsl(var(--h), var(--s), 93%);
    --clr-11: hsl(var(--h), var(--s), 95%);
    --clr-12: hsl(var(--h), var(--s), 97%);

    @media (width > 70em) {
        grid-column: 2;
    }

    & p {
        color: var(--text-black) !important;
    }
}


.palette-circle::before {
    position: absolute;
    content: "";
    width: calc(var(--circle-size) * 0.4);
    aspect-ratio: 1 / 1;
    background-color: var(--foreground);
    border-radius: 100vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.color-data {
    width: 100%;
    display: grid;
    grid-template-rows: 1fr auto;
    gap: calc(var(--gap) * 0.5);
}

.top-rect {
    width: 100%;
    display: grid;
    grid-template-columns: 70% 1fr;
    gap: calc(var(--gap) * 0.5);
}

.palette-rect,
.palette-square {
    background-color: var(--clr-1);
    width: 100%;
    padding: calc(var(--gap) * 0.5);

    p {
        color: var(--white);
    }
}

.decor-rect {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.decor-rect div {
    width: 100%;
    height: 2rem;
}

.decor-rect div:nth-child(1) {
    background-color: var(--clr-1);
}

.decor-rect div:nth-child(2) {
    background-color: var(--clr-4);
}

.decor-rect div:nth-child(3) {
    background-color: var(--clr-8);
}

.decor-rect div:nth-child(4) {
    background-color: var(--clr-12);
}

.margin-block {
    margin-block: calc(var(--gap) * 5);
}

.img-area {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: var(--gap);
}

.img-area img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.full-width-img {
    width: 100%;
}

.graphic-elements {
    border-top: 0.0015rem solid var(--surface-dark);
    padding-top: 1rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: var(--gap);
    margin-block: calc(var(--gap) * 2);
    align-items: center;

    @media (width > 50em) {
        grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
    }
}

.graphic-elements img {
    width: 100%;
    aspect-ratio: 2.25 / 1;
    border: 1px solid var(--surface);
}

.typeface {
    display: grid;
    gap: var(--gap);
}

.typeface[dir="rtl"] p{
    font-family: var(--ff-arabic);
    line-height: 1.5em;
}

.font-name >p{
    font-size: 5em !important;
    font-weight: 700;
    color: var(--background);
}

.font {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: calc(var(--gap) * 2);
    padding-bottom: var(--gap);
    border-bottom: 0.5px solid var(--text-bright);
}

.font:last-of-type {
    border-bottom: none;
}

.glyphs {
    width: 100%;
    display: grid;
    align-items: start;
    gap: var(--gap);
}

.glyphs p {
    width: 100%;
    font-size: calc(var(--fs) * 1);
    font-weight: 300;
    letter-spacing: 0.5em;
}

.heading {
    font-size: calc(var(--fs) * 3);
    font-weight: 700;
}

.sub-heading {
    font-size: calc(var(--fs) * 1.5);
    font-weight: 500;
}

.gallery-row {
    display: grid;
    gap: var(--gap);
    padding-bottom: var(--gap);
    border-bottom: 1px solid var(--surface-dark);

}

.gallery-row:last-of-type {
    border: none;
}

.gallery-row img {
    width: 100%;
    background-color: var(--clr-neutral-200);
    padding: calc(var(--gap) * 0);
    object-fit: cover;
}

.row-content{
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    button{
        font-size: .65em;
        width: 100%;
        margin-top: calc(var(--gap)*5);

        @media (width > 50em){
            font-size: .9em;
            margin-top: calc(var(--gap)*0);
            width: min(240px, 100%);
        }
    }
}

.descreption button{
    font-size: .65em;
        width: 100%;
        margin-top: calc(var(--gap)*5);

        @media (width > 50em){
            font-size: .9em;
            margin-top: calc(var(--gap)*2);
            width: min(240px, 100%);
        }
}

.logo-download{
    width: 100%;
    background: var(--brand-gradient);
    padding: calc(var(--gap)*1);

    .container{
        display: grid;
        grid-template-columns: 1fr;
        gap: calc(var(--gap)*2);
        padding: calc(var(--gap)*2);
        place-content: center;

        @media (width > 50em){
            grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
            gap: calc(var(--gap)*4);
        }

        h1, h2{
            color: var(--surface) !important;
        }
    }

    
}

.locked-download{
    display: none;
}

/* Header Controls Container to hold Login and Theme Toggle */
.header-controls {
    display: flex;
    align-items: end;
    gap: calc(var(--gap)*2);
}

/* Login Wrapper */
.login-wrapper {
    display: grid;
    place-items: center;
    gap: calc(var(--gap) * 0.5);
    text-align: center;
}

.login-description {
    text-transform: uppercase;
    font-weight: 300;
    letter-spacing: 0.125em;
    font-size: calc(var(--fs) * 0.65);
    margin-bottom: 2px;
}

/* Login Button Styling to match theme */
#global-login-btn {
    font-size: calc(var(--ff)*.8);
    padding: calc(var(--gap)*.35) calc(var(--gap)*1);
    border: 1px solid var(--text-bright);
    background: transparent;
    color: var(--text-bright);
    cursor: pointer;
    border-radius: 100vh;
}

#global-login-btn:hover {
    background: var(--text-bright);
    color: var(--background);
}

/* Message shown when not logged in */
.login-msg {
    font-size: 0.8rem;
    opacity: 0.6;
    font-style: italic;
    margin-top: 0.5rem;
}

/* Mobile Responsiveness for Header */
@media (width < 60em) {
    .header-controls {
        gap: 1rem;
        padding-right: 1rem;
    }
    .login-description, .theme-toggle-description {
        display: none; /* Hide text on small screens to save space */
    }
}

/*----------------------------------------------
------------------------------------------------
6. Footer Styles
------------------------------------------------
----------------------------------------------*/
footer {
    width: 80%;
    margin-inline: auto;
    background: var(--foreground);
    border-radius: calc(var(--border-radius) * 3) calc(var(--border-radius) * 3)
        0 0;
    padding: var(--gap);

    @media (width > 35em) {
        width: 80%;
    }
}

.footer-container {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap) * 2);
}

.copyrights {
    display: grid;
    gap: var(--gap);
}

.copyrights ul {
    font-family: var(--ff);
    list-style: none;
}

.copyrights ul a {
    color: var(--accent);
}

.copyrights ul li {
    font-size: calc(var(--fs) / 1.2);
    color: var(--text-bright);
}

.footer-img {
    width: 6rem;
    aspect-ratio: 1 / 1;
    background-image: url(/faviconflat.svg);
    object-fit: cover;
    background-size: 6rem;
    background-repeat: no-repeat;
    background-position: center;

    @media (prefers-color-scheme: dark) {
        background-image: url(/favicon.svg);
    }
}

[data-theme="dark"] {
    .footer-img {
        background-image: url(/favicon.svg);
    }
}

[data-theme="light"] {
    .footer-img {
        background-image: url(/faviconflat.svg);
    }
}

@media (width < 70em) {
    .hero > img {
        translate: -15%;
        width: 100%;
    }

    .hero .container {
        gap: calc(var(--gap) * 0.25);
        margin-block-start: 15%;
    }
}

@media (width < 50em) {
    .hero > img {
        translate: -50%;
        width: 180%;
    }

    .hero .container {
        gap: calc(var(--gap) * 0.25);
        margin-block-start: -15%;
    }
}

@media (width < 40em) {
    .hero > img {
        translate: -20%;
        width: 200%;
    }

    .hero .container {
        gap: calc(var(--gap) * 0.25);
        margin-block-start: -25%;
    }
}

@media (width < 60em) {
    :root {
        --border-radius: 0.5rem;
        --flex-dir: column;
        --gap: 0.5rem;
        --fs: 0.7em;
    }

    .socialmedia ul {
        gap: calc(var(--gap) * 3);
    }

    .socialmedia ul img {
        --factor: 3;
    }

    header img {
        max-width: 3.125rem;
    }

    .hero h1 {
        margin-top: calc(var(--gap) * 75);
        justify-self: center;
        text-align: center;
    }

    .hero h3 {
        justify-self: center;
    }

    .hero a {
        justify-self: center;
    }

    main {
        width: 95%;
        padding: calc(var(--gap) * 5) calc(var(--gap) * 0.5);
    }

    footer {
        width: 95%;
        padding: calc(var(--gap) * 5) calc(var(--gap) * 0.5);
    }

    .container {
        max-width: 95%;
    }

    .img-right {
        grid-template-columns: 1fr;
    }

    .img-right .content {
        width: 100%;
    }

    .img-left img {
        grid-row: 1;
        justify-self: center;
    }

    .img-left .content {
        width: 100%;
    }

    .service {
        width: 100%;
        display: grid;
        grid-template-columns: 30% 1fr;
        grid-template-rows: 10% 1fr;
    }

    .service img {
        grid-column: 1;
        grid-row: 1 / -1;
    }

    .service h5,
    .service p {
        grid-column: 2;
    }

    .service h5 {
        grid-row: 1;
    }

    .service p {
        grid-row: 2;
    }

    .postdesign {
        margin-block: calc(var(--gap) * 2);
    }

    .postdesign > img {
        width: 100%;
    }

    .threeColors {
        flex-direction: row !important;
    }

    #threeImg {
        width: 70%;
    }

    .footer-container {
        flex-direction: column-reverse;
    }

    .footer-container img {
        width: 25%;
    }

    .projects:first-child {
        aspect-ratio: 1 / 1;
        grid-row: 1;
        grid-column: 1;
    }
}


/* ------------------------------------------------
   CUSTOM LOGIN MODAL STYLES
------------------------------------------------ */
.modal-overlay {
    display: none; /* Hidden by default */
    position: fixed;
    inset: 0;
    background: var(--clr-accent-400-trans);
    backdrop-filter: blur(15px);
    z-index: 10000;
    place-items: center;
    justify-content: center;
}

.modal-box {
    background: var(--background);
    padding: calc(var(--gap)*2);
    border-radius: calc(var(--border-radius)*2);
    width: min(90%, 24rem);
    box-shadow: 0 15px 20px var(--clr-accent-600);
    text-align: center;
}

.modal-box h3 {
    color: var(--text-bright);
    margin-bottom: calc(var(--gap)*.5);
}

.modal-box p {
    color: var(--surface);
    margin-bottom: 1.5rem;
    font-size: calc(var(--fs)*.9);
}

.input-group {
    margin-bottom: calc(var(--gap)*1);
}

.input-group input {
    width: 100%;
    padding: calc(var(--gap)*.8);
    border-radius: calc(var(--border-radius)*.7);
    border: none;
    background: var(--foreground);
    color: var(--text-bright);
    font-family: var(--ff);
    font-size: calc(var(--fs)*1);
    outline: none;
}

.input-group input:focus {
    border: 1px solid var(--clr-brand-1);
}

.modal-buttons {
    display: flex;
    gap: calc(var(--gap)*2);
    margin-top: calc(var(--gap)*2);
    justify-content: center;
}

.btn-cancel {
    background: var(--clr-brand-1);
    color: var(--text-bright);
    border: none;
}

.btn-submit {
    background: var(--brand-gradient);
    color: var(--surface);
    border: none;
}

/* ------------------------------------------------
   USER DROPDOWN MENU STYLES
------------------------------------------------ */
.user-dropdown-wrapper {
    position: relative;
    display: inline-block;
}

.user-menu-btn {
    background: transparent;
    border: 1px solid var(--surface);
    padding: calc(var(--gap)*.5) calc(var(--gap)*1);
    border-radius: 100vh;
    cursor: pointer;
    color: var(--text-bright);
    font-family: var(--ff);
    font-size: calc(var(--fs)*.9);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: calc(var(--gap)*.5);
    transition: all 250ms ease;
}

.user-menu-btn:hover {
    background: var(--surface);
    border-radius: 100vh;
}

.dropdown-arrow {
    font-size: calc(var(--gap)*.7);
}

/* The Menu Box */
.dropdown-content {
    display: none; /* Hidden by default */
    position: absolute;
    right: 0;
    top: 120%;
    background: var(--clr-brand-1);
    min-width: 200px;
    border-radius: calc(var(--border-radius)*1.5);
    z-index: 1000;
    overflow: hidden;
    padding: calc(var(--gap)*.25) 0;
}

/* Show class to toggle visibility */
.dropdown-content.show {
    display: block;
    animation: fadeIn 0.2s ease-in-out;
}

.dropdown-item {
    color: var(--text-bright);
    padding: calc(var(--gap)*.8) calc(var(--gap)*1);
    text-decoration: none;
    display: grid;
    place-content: center;
    font-size: calc(var(--fs)*.9);
    transition: background 0.2s;
}

.dropdown-item:hover {
    color: var(--clr-accent-400);
}

.dropdown-divider {
    height: 1px;
    background: var(--clr-brand-2);
    margin: 4px 0;
}

.logout-item {
    color: var(--text-bright);
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ------------------------------------------------
   DRAGGABLE GALLERY STYLES
------------------------------------------------ */
.scroll-gallery {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory; /* Snap affects scrolling */
    gap: 1rem;
    width: 100%;
    border-radius: var(--border-radius);
    cursor: grab; /* Shows the hand icon */
    
    /* Hide scrollbar */
    -ms-overflow-style: none;  
    scrollbar-width: none;  
    scroll-behavior: smooth; /* Smooth auto-scrolling */
}

.scroll-gallery::-webkit-scrollbar {
    display: none;
}

.scroll-gallery.active {
    cursor: grabbing; /* Closed hand when dragging */
    scroll-snap-type: none; /* Disable snap while dragging for smoothness */
    scroll-behavior: auto; /* Disable smooth scroll while dragging to follow mouse instantly */
}

.scroll-gallery img {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    scroll-snap-align: center;
    pointer-events: none; /* Prevents image dragging ghost effect */
}

/* ------------------------------------------------
   GALLERY DOTS STYLES
------------------------------------------------ */
.gallery-container {
    position: relative; /* Essential for overlaying the dots */
    width: 100%;
    overflow: hidden;
    border-radius: var(--border-radius);
}

.gallery-dots {
    position: absolute;
    bottom: 15px;      /* Distance from bottom of image */
    left: 50%;
    transform: translateX(-50%); /* Center horizontally */
    display: flex;
    gap: 8px;
    z-index: 10;
    pointer-events: none; /* Let clicks pass through gap between dots */
}

.dot {
    --width: .5rem;

    width: var(--width);
    aspect-ratio: 1 / 1;
    background: var(--clr-accent-100); /* Transparent white */
    border-radius: 100vh;
    cursor: pointer;
    transition: all 0.3s ease;
    pointer-events: auto; /* Enable clicking on the dot itself */
    box-shadow: 0 1px 2px rgba(0,0,0,0.3); /* Shadow for visibility on light images */
}

.dot:hover {
    background: var(--clr-accent-400);
}

.dot.active {
    background: var(--clr-accent-200); /* Solid white for active */
    transform: scale(1.3); /* Slightly larger */
}

.canvas-wrapper{
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--surface-dark);
    border-radius: calc(var(--border-radius)*2);
    margin-block: calc(var(--gap)*2);
    position: relative;
    display: grid;
    place-content: center;
    overflow: hidden;
    isolation: isolate;

    @media (width > 50em){
        aspect-ratio: 16 / 9;
    }

    &::before,
    &::after{
        position: absolute;
        content: "";
        width: 100%;
        height: 5%;
        background: var(--brand-gradient);
        box-shadow: 0 5px 10px hsla(0, 0%, 0%, .25);
        z-index: 9999;
    }

    &::after{
        bottom: 0;
        width: 99%;
        height: 1.5%;
        left: 50%;
        translate: -50% 0;
    }
}

#canvas-container {
    width: 100%;
    cursor: grab;
    display: flex;
    align-items: center;
    justify-content: center;
}

#canvas-container:active { cursor: grabbing; }

/* This wrapper will hold your SVG and handle the Zoom/Pan */
#zoom-wrapper {
    inset: 0;
    /* Centers the SVG initially */
    display: grid;
    place-content: center;
    transform-origin: 0 0; /* Important for the math */
}

/* Ensure injected SVG fits nicely */
#zoom-wrapper svg {
    width: auto;
    height: auto;
    max-width: 80%; /* Start at a reasonable size */
    max-height: 80%;
    pointer-events: none; /* Let clicks pass through if needed */
}

/* --- NEW: The Overlay --- */
#overlay {
    position: absolute;
    inset: 0;
    background: var(--clr-accent-400-trans); /* 85% white opacity */
    z-index: 10; /* Sits on top of SVG */
    display: grid;
    place-content: center;
    cursor: pointer;
    transition: opacity 0.3s ease; /* Smooth fade effect */
}

#overlay p {
    font-size: calc(var(--fs)*1.2);
    color: var(--white);
    pointer-events: none; /* Lets the click pass to the div */
    text-transform: uppercase;
    letter-spacing: calc(var(--fs)*0.125);
    font-weight: 300;
}

/* --- NEW: The Exit Button --- */
#exit-btn {
    position: absolute;
    top: calc(var(--gap)*3);
    right: calc(var(--gap)*1);
    z-index: 20; /* Above everything */
    padding: 10px 20px;
    background: none;
    color: var(--clr-neutral-100);
    border: 1px solid var(--clr-neutral-100);
    border-radius: 100vh;
    cursor: pointer;
    display: none; /* Hidden by default */

    &:hover{
        background: var(--brand-gradient);
        border: none;
    }
}

/* Helper class to hide elements */
.hidden {
    opacity: 0;
    pointer-events: none;
}