/* ──────────────────────────────────────────────── */
/*                    ROOT & FONTS                 */
/* ──────────────────────────────────────────────── */
:root {
  --bg-gradient: linear-gradient(180deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.3) 100%);
}


@font-face {
  font-family: 'IBMPlexSans';
  src: url('../fonts/IBMPlexSans_Condensed-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Lato';
  src: url('../fonts/Lato-Regular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}


/* ──────────────────────────────────────────────── */
/*                    GLOBAL RESETS                */
/* ──────────────────────────────────────────────── */
* {
  box-sizing: border-box;
  user-select: none;
}
html, body {
  overscroll-behavior: none;
}
.rotation-text svg, .footer-nav svg, .cp, .primary-btn {
  will-change: transform, opacity, fill, color;
}

body {
  margin: 0;
  padding: 0;
  height: 100vh;
  color: #fff;
  background: rgb(0, 0, 0);
  font-family: "IBMPlexSans", serif;
  overflow-x: hidden;
}

a {
  color: #fff;
  text-decoration: none;
}

/* ──────────────────────────────────────────────── */
/*                    CANVAS & SECTIONS            */
/* ──────────────────────────────────────────────── */
canvas {
  display: block;
  position: fixed;
  width: 100%;
  height: 100%;
}

section {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
}

section:first-of-type {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

section .outer,
section .inner {
  width: 100%;
  height: 100%;
  overflow-y: hidden;
}

section .bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
}
section .bg h2 {
  z-index: 2;
}
section .bg .clip-text {
  overflow: hidden;
}

/* ──────────────────────────────────────────────── */
/*                    HEADINGS                     */
/* ──────────────────────────────────────────────── */
h2 {
  font-size: 1.5rem;
  font-weight: 400;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  line-height: 2rem;
  width: 100%;
  max-width: 779px;
  margin: 0 auto;
  position: fixed;
}

.outer .section-heading {
  position: relative;
  opacity: 1;
}

.outer h2.section-heading {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 779px;
  gap: 3px; /* Malo razmaka između slova */
}

h2.black-section {
  color: rgba(0, 0, 0);
  max-width: 661px;
  position: fixed;
  display: block;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%) scale(0);
  visibility: hidden;
  opacity: 0;
  margin: auto;
}

/* ──────────────────────────────────────────────── */
/*                    HEADER & NAVIGATION          */
/* ──────────────────────────────────────────────── */
header {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5%;
  width: 100%;
  height: 7em;
  z-index: 3;
  font-family: "IBMPlexSans", sans-serif;
  font-size: clamp(0.66rem, 2vw, 1rem);
  letter-spacing: 0.5em;
}

svg#bilion, svg#codevision {
  position: fixed;
  z-index: 9;
  top: 50%;
  right: 3rem;
  transform: translateY(-50%);
  opacity: 0;
}
svg#bilion:hover, svg#codevision:hover {
  opacity: .6 !important;
}

#scrollCV {
  position: fixed;
  bottom: 20px;
  left: 0;
  right: 0;
  margin: auto;
}

.dot {
  width: 3px;
  height: 3px;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  position: fixed;
  left: 0;
  right: 0;
  margin: auto;
  bottom: 46px;
  animation: moveUpDown 2s infinite ease-in-out;
}

@keyframes moveUpDown {
  0% { transform: translateY(2px); }
  50% { transform: translateY(13px); }
  100% { transform: translateY(2px); }
}

/* ──────────────────────────────────────────────── */
/*              LOADING VECTOR & ROTATION TEXT     */
/* ──────────────────────────────────────────────── */
.loading-vector,
.rotation-text {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 6rem;
  height: 6rem;
  justify-content: center;
  align-items: center;
  transform: translate(-50%, -50%) rotate(0);
}

.rotation-text {
  width: 23rem;
  height: 23rem;
  transform: translate(-50%, -54%) rotate(45deg) scale(3);
  transform-origin: center;
  z-index: 6;
  animation: rotateCube 12s infinite linear;
}

.rotation-text svg {
  opacity: 0;
  visibility: hidden;
  fill: #fff;
}

@keyframes rotateCube {
  0% { transform: translate(-50%, -54%) rotate(0deg); }
  100% { transform: translate(-50%, -54%) rotate(360deg); }
}

@keyframes rotateCubeTwo {
  0% { transform: translate(-50%, -130%) rotate(0deg); }
  100% { transform: translate(-50%, -130%) rotate(360deg); }
}

.loading-vector path {
  stroke: transparent;
  fill: transparent;
}

.loading-vector svg,
.loading-vector g {
  transform-origin: center;
}
.loading-vector g {
  transform: translate(22.26px, 21.43px);
}

.loading-vector-1 { transform: translate(-50%, -50%) rotate(0); }
.loading-vector-2 { transform: translate(-86%, -86%) rotate(0); }
.loading-vector-3 { transform: translate(-14%, -86%) rotate(0); }
.loading-vector-4 { transform: translate(22%, -50%) rotate(0); }
.loading-vector-5 { transform: translate(-122%, -50%) rotate(0); }

h2 * {
  will-change: transform;
}

/* ──────────────────────────────────────────────── */
/*              SVG CONTAINERS & CIRCLES           */
/* ──────────────────────────────────────────────── */
#svg-container, 
#svg-container-two {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0) scale(1);
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 1512px;
  height: 982px;
  gap: 5px;
  will-change: transform;
}

#svg-container .circle-container {
  width: calc(50% - 5px);
  height: calc(50% - 5px);
  position: relative;
  will-change: transform;
}

#svg-container .circle-container .circle {
  width: 1600px;
  height: 1600px;
  transform: scale(1);
  position: absolute;
  bottom: 0;
  will-change: transform;
}

#svg-container .circle-container:nth-of-type(2n) .circle {
  left: 0;
  right: auto;
}

#svg-container .circle-container:nth-of-type(2n + 1) .circle {
  left: auto;
  right: 0;
}

#svg-container .circle-container:nth-of-type(3) .circle,
#svg-container .circle-container:nth-of-type(4) .circle {
  top: 0;
  bottom: auto;
}

#svg-container-two .circle-container {
  width: calc(33.33% - 10px);
  height: calc(33.33% - 10px);
  position: relative;
  will-change: transform;
}

#svg-container-two .circle-container .circle {
  width: 578.88px;
  height: 578.88px;
  transform: scale(1);
  will-change: transform;
}

#svg-container-two .circle-5 {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) rotate(-225deg) !important;
  margin: 0 auto;
  bottom: 115px;
}

#svg-container-two .circle-6 {
  position: absolute;
  right: 35px;
  top: 50%;
  transform: translateY(-50%) rotate(48deg) !important;
  margin: 0 auto;
}

#svg-container-two .circle-7 {
  position: absolute;
  left: 50%;
  bottom: 50%;
  transform: translate(-50%, 50%) rotate(2deg) !important;
  margin: 0 auto;
}

#svg-container-two .circle-8 {
  position: absolute;
  left: 35px;
  top: 50%;
  transform: translateY(-50%) rotate(230deg) !important;
  margin: 0 auto;
}

#svg-container-two .circle-9 {
  position: absolute;
  left: 50%;
  top: 115px;
  transform: translateX(-50%) rotate(-40deg) !important;
  margin: 0 auto;
}

svg.circle.circle-1 { transform: rotate(-260deg) !important; }
svg.circle.circle-2 { transform: rotate(-220deg) !important; }
svg.circle.circle-3 { transform: rotate(-40deg) !important; }
svg.circle.circle-4 { transform: rotate(280deg) !important; }

/* ──────────────────────────────────────────────── */
/*                  FOOTER ELEMENTI              */
/* ──────────────────────────────────────────────── */
.footer-nav {
  position: fixed;
  bottom: 2rem;
  left: 0;
  right: 0;
  max-width: 75rem;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  z-index: 5;
  padding: 0 1rem;
}

.cp {
  font-size: 15px;
  font-family: "IBMPlexSans", serif;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
}

.footer-nav svg {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 auto;
  fill: #fff;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}

/* ──────────────────────────────────────────────── */
/*         PRIMARY BUTTON & INTERAKCIJA            */
/* ──────────────────────────────────────────────── */
.primary-btn {
  font-family: 'Lato' !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.8rem;
  border: 1px solid #fff;
  border-radius: 10rem;
  opacity: 0;
  visibility: hidden;
  z-index: 4;
  filter: invert(0%);
  transition: all 0.1s;
}
.primary-btn:hover {
  border-color: #fff !important;
  color: #fff !important;
}

/* ──────────────────────────────────────────────── */
/*    FULLSCREEN BACKGROUND & RED-HIDE LOGO         */
/* ──────────────────────────────────────────────── */
.fullscreen-bg {
  position: fixed;
  top: 100%;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #FF2400;
  z-index: -1;
  pointer-events: none;
}

.red-hide-logo {
  position: fixed;
  left: 0;
  width: 100%;
  height: 3rem;
  bottom: 0;
  z-index: 3;
}

/* ──────────────────────────────────────────────── */
/*                    MEDIA QUERIES                */
/* ──────────────────────────────────────────────── */
@media screen and (max-width: 1000px) {
  h2 { padding: 1rem; }
  #svg-container,
  #svg-container-two { transform: translate(-50%, -50%) scale(0.7); }
  .footer-nav { padding: 1rem; }
  .cp, .primary-btn { font-size: 14px; }
  h2.section-heading,
  h2.black-section {
    height: auto;
    font-size: 1rem;
    line-height: 1.5rem;
  }
  svg.circle.circle-1 { transform: rotate(-280deg) !important; }
  svg.circle.circle-2 { transform: rotate(-220deg) !important; }
  svg.circle.circle-3 { transform: rotate(-40deg) !important; }
  svg.circle.circle-4 { transform: rotate(260deg) !important; }
}

@media screen and (max-width: 768px) {
  .outer h2.section-heading, h2.black-section { max-width: calc(100% - 3rem); }
  h2 { padding: 1rem; }
  #svg-container,
  #svg-container-two { transform: translate(-50%, -50%) scale(0.5); }
  .footer-nav svg { margin-bottom: 6rem; }
  svg#bilion, svg#codevision { top: auto; transform: none; bottom: 120px; }
  .footer-nav { flex-direction: column-reverse; }
  .primary-btn {
  max-width: 115px;
  width: 115px;
  text-align: center;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
.cp {
    font-size: 12px;
    margin: 0 auto;
}
.footer-nav > svg {
    bottom: -1rem!important;
}
h2.section-heading, h2.black-section {
        font-size: .9rem;
    }
  svg#bilion, svg#codevision { right: 1rem; }
}

@media screen and (max-width: 480px) {
  #svg-container,
  #svg-container-two { transform: translate(-50%, -50%) scale(0.1) !important; }
  .circle > path { stroke-width: 2px !important; }
}
    #orientation-warning {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: black;
    color: white;
    font-size: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    z-index: 9999;
    }
    @media screen and (min-width: 1024px) {
    #orientation-warning {
        display: none !important; /* Sakrij poruku na desktopu */
    }
    }