* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --sidebar-width: 250px;

  --background: #f4f6fa;
  --surface: #ffffff;
  --surface-soft: #f8f9fc;

  --text: #101828;
  --text-secondary: #667085;
  --text-muted: #98a2b3;

  --border: #e4e7ec;

  --dark: #101828;
  --dark-soft: #1d2939;

  --accent: #635bff;
  --accent-light: #7c74ff;

  --green: #12b76a;

  --shadow-sm: 0 4px 14px rgba(16, 24, 40, 0.05);

  --shadow: 0 15px 40px rgba(16, 24, 40, 0.08);

  --shadow-lg: 0 30px 80px rgba(16, 24, 40, 0.14);
}

html {
  scroll-behavior: smooth;
}

body {
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

  background: var(--background);

  color: var(--text);

  min-height: 100vh;
}

body.mobile-menu-open {
  overflow: hidden;
}

button,
a {
  font: inherit;
}

button {
  border: 0;
}

/* ============================================================
   APPLICATION LAYOUT
============================================================ */

.app-layout {
  min-height: 100vh;

  display: flex;
}

/* ============================================================
   SIDEBAR
============================================================ */

.sidebar {
  position: fixed;

  left: 0;
  top: 0;

  width: var(--sidebar-width);

  height: 100vh;

  background: linear-gradient(180deg, #0b1220 0%, #101828 100%);

  color: white;

  display: flex;

  flex-direction: column;

  padding: 28px 18px;

  z-index: 100;
}

/* ============================================================
   BRAND
============================================================ */

.sidebar-brand {
  display: flex;

  align-items: center;

  gap: 12px;

  padding: 4px 10px 30px;
}

.brand-logo {
  width: 44px;
  height: 44px;

  display: grid;

  place-items: center;

  border-radius: 13px;

  background: white;

  font-weight: 800;

  font-size: 14px;

  box-shadow: 0 10px 25px rgba(99, 91, 255, 0.35);
}

.brand-info {
  display: flex;

  flex-direction: column;

  gap: 3px;
}

.brand-info strong {
  font-size: 14px;
}

.brand-info span {
  font-size: 11px;

  color: rgba(255, 255, 255, 0.5);
}

/* ============================================================
   NAVIGATION
============================================================ */

.navigation {
  display: flex;

  flex-direction: column;

  gap: 6px;
}

.nav-link {
  position: relative;

  display: flex;

  align-items: center;

  gap: 13px;

  padding: 13px 14px;

  border-radius: 11px;

  text-decoration: none;

  color: rgba(255, 255, 255, 0.58);

  font-size: 13px;

  font-weight: 600;

  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.nav-link:hover {
  color: white;

  background: rgba(255, 255, 255, 0.06);

  transform: translateX(2px);
}

.nav-link.active {
  color: white;

  background: linear-gradient(
    135deg,
    rgba(99, 91, 255, 0.25),
    rgba(124, 116, 255, 0.12)
  );
}

.nav-link.active::before {
  content: "";

  position: absolute;

  left: 0;

  top: 9px;
  bottom: 9px;

  width: 3px;

  border-radius: 5px;

  background: var(--accent-light);
}

.nav-icon {
  width: 20px;

  display: grid;

  place-items: center;

  font-size: 16px;
}

/* ============================================================
   SIDEBAR BOTTOM
============================================================ */

.sidebar-bottom {
  margin-top: auto;

  padding: 20px 10px 5px;
}

.availability {
  display: flex;

  align-items: center;

  gap: 10px;

  padding: 12px;

  border-radius: 12px;

  background: rgba(255, 255, 255, 0.045);

  border: 1px solid rgba(255, 255, 255, 0.06);
}

.availability-dot {
  width: 8px;
  height: 8px;

  border-radius: 50%;

  background: var(--green);

  box-shadow: 0 0 0 5px rgba(18, 183, 106, 0.12);
}

.availability div {
  display: flex;

  flex-direction: column;

  gap: 2px;
}

.availability strong {
  font-size: 12px;
}

.availability small {
  color: rgba(255, 255, 255, 0.45);

  font-size: 10px;
}

/* ============================================================
   MAIN
============================================================ */

.main-content {
  width: calc(100% - var(--sidebar-width));

  margin-left: var(--sidebar-width);

  padding: 36px 46px 80px;
}

/* ============================================================
   PAGE SECTIONS
============================================================ */

.page-section {
  display: none;

  max-width: 1500px;

  margin: 0 auto;
}

.page-section.active-section {
  display: block;

  animation: sectionEnter 0.45s ease both;
}

@keyframes sectionEnter {
  from {
    opacity: 0;

    transform: translateY(12px);
  }

  to {
    opacity: 1;

    transform: translateY(0);
  }
}

/* ============================================================
   PAGE HEADER
============================================================ */

.page-header {
  display: flex;

  justify-content: space-between;

  align-items: flex-end;

  gap: 30px;

  margin-bottom: 24px;
}

.eyebrow {
  display: inline-flex;

  align-items: center;

  gap: 8px;

  color: var(--accent);

  font-size: 10px;

  font-weight: 800;

  letter-spacing: 0.16em;

  margin-bottom: 10px;
}

.page-header h1,
.section-heading h2 {
  font-size: clamp(34px, 4vw, 56px);

  line-height: 1.05;

  letter-spacing: -0.045em;
}

.page-header p {
  max-width: 650px;

  color: var(--text-secondary);

  font-size: 14px;

  line-height: 1.7;

  margin-top: 14px;
}

.gradient-text {
  background: linear-gradient(135deg, #635bff, #9b8cff);

  -webkit-background-clip: text;

  background-clip: text;

  color: transparent;
}

.header-status {
  white-space: nowrap;

  display: flex;

  align-items: center;

  gap: 9px;

  padding: 10px 14px;

  background: white;

  border: 1px solid var(--border);

  border-radius: 999px;

  font-size: 11px;

  font-weight: 700;

  color: var(--text-secondary);

  box-shadow: var(--shadow-sm);
}

.status-dot {
  width: 7px;
  height: 7px;

  border-radius: 50%;

  background: var(--green);
}

/* ============================================================
   TECHNOLOGY CAROUSEL
============================================================ */

.technology-carousel {
  position: relative;

  margin: 18px 0 28px;

  background: var(--surface);

  border: 1px solid var(--border);

  border-radius: 18px;

  overflow: hidden;

  box-shadow: var(--shadow-sm);
}

.carousel-label {
  position: absolute;

  z-index: 5;

  left: 0;
  top: 0;
  bottom: 0;

  width: 135px;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 5px;

  background: linear-gradient(90deg, white 70%, rgba(255, 255, 255, 0));

  font-size: 9px;

  font-weight: 800;

  letter-spacing: 0.13em;
}

.carousel-label span:first-child {
  color: var(--accent);
}

.carousel-line {
  width: 16px;

  height: 1px;

  background: var(--border);
}

.tech-ticker {
  width: 100%;

  overflow: hidden;

  padding: 16px 0 16px 125px;
}

.tech-ticker-track {
  display: flex;

  width: max-content;

  animation: technologyMarquee 30s linear infinite;
}

.tech-ticker-set {
  display: flex;

  align-items: center;

  gap: 34px;

  padding-right: 34px;

  flex-shrink: 0;
}

.tech-ticker-item {
  flex-shrink: 0;

  display: flex;

  align-items: center;

  gap: 9px;

  background: transparent;

  color: var(--text-secondary);

  cursor: pointer;

  padding: 3px;

  transition:
    transform 0.2s ease,
    color 0.2s ease;
}

.tech-ticker-item:hover {
  color: var(--text);

  transform: translateY(-2px);
}

.tech-ticker-item img {
  width: 30px;
  height: 30px;

  object-fit: contain;
}

.tech-ticker-item span {
  font-size: 11px;

  font-weight: 700;

  white-space: nowrap;
}

@keyframes technologyMarquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

/* ============================================================
   HERO
============================================================ */

.hero-3d {
  position: relative;

  min-height: 390px;

  border-radius: 28px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 80% 20%,
      rgba(99, 91, 255, 0.28),
      transparent 30%
    ),
    radial-gradient(
      circle at 20% 100%,
      rgba(91, 33, 182, 0.28),
      transparent 32%
    ),
    #0b1220;

  color: white;

  display: flex;

  align-items: center;

  padding: 55px;

  box-shadow: var(--shadow-lg);
}

.hero-grid {
  position: absolute;

  inset: 0;

  opacity: 0.12;

  background-image:
    linear-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.2) 1px, transparent 1px);

  background-size: 50px 50px;

  mask-image: linear-gradient(to bottom, black, transparent);
}

.hero-content {
  position: relative;

  z-index: 2;

  max-width: 640px;
}

.hero-label {
  display: inline-block;

  font-size: 10px;

  font-weight: 800;

  letter-spacing: 0.2em;

  color: rgba(255, 255, 255, 0.5);

  margin-bottom: 13px;
}

.hero-content h2 {
  font-size: clamp(40px, 5vw, 72px);

  line-height: 0.95;

  letter-spacing: -0.055em;
}

.hero-content h3 {
  margin-top: 13px;

  color: #aaa3ff;

  font-size: 19px;
}

.hero-content p {
  margin-top: 18px;

  max-width: 570px;

  color: rgba(255, 255, 255, 0.62);

  line-height: 1.7;

  font-size: 13px;
}

.hero-actions {
  display: flex;

  gap: 10px;

  margin-top: 28px;
}

.primary-button,
.secondary-button {
  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-height: 42px;

  padding: 0 18px;

  border-radius: 10px;

  text-decoration: none;

  font-size: 11px;

  font-weight: 800;

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.primary-button {
  color: white;

  background: linear-gradient(135deg, var(--accent), #7c3aed);

  box-shadow: 0 10px 25px rgba(99, 91, 255, 0.3);
}

.secondary-button {
  color: white;

  border: 1px solid rgba(255, 255, 255, 0.15);

  background: rgba(255, 255, 255, 0.05);
}

.primary-button:hover,
.secondary-button:hover {
  transform: translateY(-2px);
}

/* ============================================================
   HERO VISUAL
============================================================ */

.hero-visual {
  position: absolute;

  right: 10%;

  width: 330px;
  height: 330px;
}

.hero-avatar {
  position: absolute;

  left: 50%;
  top: 50%;

  width: 150px;
  height: 150px;

  transform: translate(-50%, -50%);

  border-radius: 50%;

  display: grid;

  place-items: center;

  background: linear-gradient(135deg, #1d2939, #344054);

  border: 1px solid rgba(255, 255, 255, 0.15);

  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.4);
}

.avatar-glow {
  position: absolute;

  inset: -20px;

  border-radius: 50%;

  border: 1px solid rgba(124, 116, 255, 0.4);

  animation: avatarPulse 3s ease-in-out infinite;
}

.avatar-content {
  font-size: 42px;

  font-weight: 900;

  letter-spacing: -0.08em;

  background: linear-gradient(135deg, white, #aaa3ff);

  -webkit-background-clip: text;

  background-clip: text;

  color: transparent;
}

@keyframes avatarPulse {
  0%,
  100% {
    transform: scale(1);

    opacity: 0.6;
  }

  50% {
    transform: scale(1.08);

    opacity: 1;
  }
}

.hero-orbit {
  position: absolute;

  left: 50%;
  top: 50%;

  border: 1px solid rgba(255, 255, 255, 0.08);

  border-radius: 50%;

  transform: translate(-50%, -50%) rotate(-20deg);
}

.orbit-one {
  width: 240px;
  height: 100px;
}

.orbit-two {
  width: 100px;
  height: 260px;

  transform: translate(-50%, -50%) rotate(45deg);
}

.floating-cube {
  position: absolute;

  width: 62px;
  height: 62px;

  display: grid;

  place-items: center;

  border-radius: 16px;

  background: rgba(255, 255, 255, 0.06);

  border: 1px solid rgba(255, 255, 255, 0.1);

  backdrop-filter: blur(12px);

  color: #aaa3ff;

  font-weight: 900;

  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
}

.cube-one {
  left: 10%;

  top: 17%;

  transform: rotate(-12deg);

  animation: cubeFloatOne 5s ease-in-out infinite;
}

.cube-two {
  right: 5%;

  bottom: 15%;

  transform: rotate(12deg);

  animation: cubeFloatTwo 6s ease-in-out infinite;
}

@keyframes cubeFloatOne {
  0%,
  100% {
    transform: translateY(0) rotate(-12deg);
  }

  50% {
    transform: translateY(-15px) rotate(-5deg);
  }
}

@keyframes cubeFloatTwo {
  0%,
  100% {
    transform: translateY(0) rotate(12deg);
  }

  50% {
    transform: translateY(13px) rotate(18deg);
  }
}

/* ============================================================
   STATS
============================================================ */

.stats-grid {
  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 14px;

  margin-top: 18px;
}

.stat-card {
  padding: 20px;

  background: var(--surface);

  border: 1px solid var(--border);

  border-radius: 16px;

  box-shadow: var(--shadow-sm);
}

.stat-number {
  display: block;

  font-size: 28px;

  font-weight: 900;

  letter-spacing: -0.05em;

  color: var(--text);
}

.stat-label {
  display: block;

  margin-top: 5px;

  color: var(--text-muted);

  font-size: 10px;

  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.08em;
}

/* ============================================================
   DASHBOARD
============================================================ */

.dashboard-grid {
  display: grid;

  grid-template-columns: 0.85fr 1.15fr;

  gap: 18px;

  margin-top: 18px;
}

.glass-card {
  background: rgba(255, 255, 255, 0.95);

  border: 1px solid var(--border);

  border-radius: 20px;

  padding: 26px;

  box-shadow: var(--shadow-sm);
}

.card-heading {
  display: flex;

  align-items: center;

  gap: 12px;

  margin-bottom: 18px;
}

.card-icon {
  width: 40px;
  height: 40px;

  display: grid;

  place-items: center;

  border-radius: 12px;

  background: #f0efff;

  color: var(--accent);

  font-size: 17px;
}

.card-kicker {
  display: block;

  color: var(--text-muted);

  font-size: 9px;

  font-weight: 800;

  letter-spacing: 0.12em;

  margin-bottom: 3px;
}

.card-heading h3 {
  font-size: 17px;
}

.service-list {
  display: flex;

  flex-direction: column;

  gap: 2px;
}

.service-item {
  display: flex;

  gap: 15px;

  padding: 14px 0;

  border-bottom: 1px solid var(--border);
}

.service-item:last-child {
  border-bottom: 0;
}

.service-item > span {
  font-size: 9px;

  font-weight: 800;

  color: var(--accent);

  padding-top: 3px;
}

.service-item strong {
  font-size: 12px;
}

.service-item p {
  color: var(--text-secondary);

  font-size: 11px;

  line-height: 1.6;

  margin-top: 4px;
}

/* ============================================================
   TECHNOLOGY GRID
============================================================ */

.stack-description {
  color: var(--text-secondary);

  font-size: 11px;

  line-height: 1.6;

  margin-bottom: 18px;
}

.technology-grid {
  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 9px;
}

.technology-card {
  position: relative;

  min-width: 0;

  display: flex;

  align-items: center;

  gap: 9px;

  text-align: left;

  padding: 11px;

  border: 1px solid var(--border);

  background: var(--surface-soft);

  border-radius: 12px;

  cursor: pointer;

  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
}

.technology-card:hover {
  transform: translateY(-3px);

  border-color: rgba(99, 91, 255, 0.35);

  background: white;

  box-shadow: 0 10px 25px rgba(16, 24, 40, 0.08);
}

.technology-icon {
  width: 38px;
  height: 38px;

  flex-shrink: 0;

  display: grid;

  place-items: center;

  background: white;

  border-radius: 10px;

  border: 1px solid var(--border);
}

.technology-icon img {
  width: 27px;
  height: 27px;

  object-fit: contain;
}

.technology-info {
  min-width: 0;

  display: flex;

  flex-direction: column;

  gap: 3px;
}

.technology-info strong {
  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;

  font-size: 10px;
}

.technology-info span {
  color: var(--text-muted);

  font-size: 8px;
}

.technology-arrow {
  margin-left: auto;

  color: var(--text-muted);

  font-size: 12px;

  transition: transform 0.2s ease;
}

.technology-card:hover .technology-arrow {
  transform: translateX(3px);

  color: var(--accent);
}

/* ============================================================
   SECTION HEADINGS
============================================================ */

.section-heading {
  margin-bottom: 30px;
}

.section-heading h2 {
  font-size: clamp(32px, 4vw, 52px);
}

.section-heading .eyebrow {
  margin-bottom: 10px;
}

/* ============================================================
   ABOUT
============================================================ */

.two-column {
  display: grid;

  grid-template-columns: 1.3fr 0.7fr;

  gap: 18px;
}

.large-card p {
  color: var(--text-secondary);

  font-size: 13px;

  line-height: 1.8;

  margin-top: 15px;
}

.glass-card > h3 {
  font-size: 18px;
}

.details-list {
  margin-top: 15px;
}

.detail-row {
  display: flex;

  flex-direction: column;

  gap: 5px;

  padding: 14px 0;

  border-bottom: 1px solid var(--border);
}

.detail-row:last-child {
  border-bottom: 0;
}

.detail-row span {
  color: var(--text-muted);

  font-size: 10px;

  text-transform: uppercase;

  letter-spacing: 0.08em;
}

.detail-row strong {
  font-size: 12px;

  word-break: break-word;
}

/* ============================================================
   EXPERIENCE
============================================================ */

.experience-container {
  display: flex;

  flex-direction: column;

  gap: 14px;
}

.experience-card {
  display: grid;

  grid-template-columns: 60px 1fr;

  gap: 20px;

  padding: 25px;

  background: white;

  border: 1px solid var(--border);

  border-radius: 18px;

  box-shadow: var(--shadow-sm);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.experience-card:hover {
  transform: translateY(-3px);

  box-shadow: var(--shadow);
}

.experience-number {
  font-size: 12px;

  font-weight: 900;

  color: var(--accent);
}

.experience-header {
  display: flex;

  justify-content: space-between;

  align-items: flex-start;

  gap: 20px;
}

.experience-position {
  color: var(--accent);

  font-size: 10px;

  font-weight: 800;

  text-transform: uppercase;

  letter-spacing: 0.08em;
}

.experience-header h3 {
  margin-top: 5px;

  font-size: 18px;
}

.experience-date {
  white-space: nowrap;

  padding: 7px 10px;

  background: var(--surface-soft);

  border-radius: 8px;

  color: var(--text-secondary);

  font-size: 10px;

  font-weight: 700;
}

.experience-description {
  margin-top: 12px;

  color: var(--text-secondary);

  font-size: 12px;

  line-height: 1.7;
}

.responsibility-list {
  margin-top: 15px;

  padding-left: 17px;
}

.responsibility-list li {
  color: var(--text-secondary);

  font-size: 11px;

  line-height: 1.7;

  margin-bottom: 5px;
}

/* ============================================================
   PROJECTS
============================================================ */

.projects-grid {
  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 16px;
}

.project-card {
  padding: 24px;

  background: white;

  border: 1px solid var(--border);

  border-radius: 18px;

  box-shadow: var(--shadow-sm);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.project-card:hover {
  transform: translateY(-4px);

  box-shadow: var(--shadow);
}

.project-top {
  display: flex;

  justify-content: space-between;

  align-items: center;
}

.project-number {
  color: var(--accent);

  font-size: 10px;

  font-weight: 900;
}

.project-status {
  padding: 5px 9px;

  background: #f2f4f7;

  border-radius: 999px;

  color: var(--text-secondary);

  font-size: 9px;

  font-weight: 700;
}

.project-card h3 {
  margin-top: 25px;

  font-size: 19px;
}

.project-card p {
  margin-top: 10px;

  color: var(--text-secondary);

  font-size: 12px;

  line-height: 1.7;
}

.project-technologies {
  display: flex;

  flex-wrap: wrap;

  gap: 6px;

  margin-top: 18px;
}

.project-technologies span {
  padding: 6px 9px;

  background: #f8f9fc;

  border: 1px solid var(--border);

  border-radius: 7px;

  color: var(--text-secondary);

  font-size: 9px;

  font-weight: 700;
}

/* ============================================================
   SKILLS
============================================================ */

.skills-grid {
  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 14px;
}

.skill-card {
  display: flex;

  gap: 20px;

  padding: 22px;

  background: white;

  border: 1px solid var(--border);

  border-radius: 17px;

  box-shadow: var(--shadow-sm);
}

.skill-number {
  color: var(--accent);

  font-size: 11px;

  font-weight: 900;
}

.skill-category {
  color: var(--text-muted);

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 0.1em;

  font-weight: 800;
}

.skill-content h3 {
  margin-top: 4px;

  font-size: 16px;
}

.skill-content p {
  margin-top: 8px;

  color: var(--text-secondary);

  font-size: 11px;

  line-height: 1.7;
}

/* ============================================================
   CONTACT
============================================================ */

.contact-3d {
  position: relative;

  overflow: hidden;

  display: grid;

  grid-template-columns: 1.2fr 0.8fr;

  gap: 50px;

  padding: 55px;

  border-radius: 25px;

  color: white;

  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(124, 116, 255, 0.35),
      transparent 30%
    ),
    #0b1220;

  box-shadow: var(--shadow-lg);
}

.contact-content h2 {
  max-width: 650px;

  font-size: clamp(34px, 4vw, 54px);

  letter-spacing: -0.04em;
}

.contact-content p {
  margin-top: 16px;

  max-width: 570px;

  color: rgba(255, 255, 255, 0.6);

  font-size: 13px;

  line-height: 1.7;
}

.contact-content .primary-button {
  margin-top: 25px;
}

.contact-details {
  display: flex;

  flex-direction: column;

  justify-content: center;

  gap: 15px;
}

.contact-detail {
  display: flex;

  align-items: center;

  gap: 14px;

  padding: 15px;

  background: rgba(255, 255, 255, 0.05);

  border: 1px solid rgba(255, 255, 255, 0.08);

  border-radius: 12px;
}

.contact-detail-icon {
  width: 38px;
  height: 38px;

  display: grid;

  place-items: center;

  border-radius: 10px;

  background: rgba(99, 91, 255, 0.18);

  color: #aaa3ff;
}

.contact-detail div {
  display: flex;

  flex-direction: column;

  gap: 3px;

  min-width: 0;
}

.contact-detail div span {
  color: rgba(255, 255, 255, 0.4);

  font-size: 9px;

  text-transform: uppercase;

  letter-spacing: 0.08em;
}

.contact-detail strong {
  font-size: 11px;

  word-break: break-word;
}

/* ============================================================
   TECHNOLOGY MODAL
============================================================ */

.technology-modal {
  position: fixed;

  inset: 0;

  z-index: 1000;

  display: flex;

  align-items: center;

  justify-content: center;

  padding: 25px;

  visibility: hidden;

  opacity: 0;

  pointer-events: none;

  transition:
    opacity 0.25s ease,
    visibility 0.25s ease;
}

.technology-modal.modal-open {
  visibility: visible;

  opacity: 1;

  pointer-events: auto;
}

.modal-backdrop {
  position: absolute;

  inset: 0;

  background: rgba(3, 7, 18, 0.72);

  backdrop-filter: blur(9px);
}

.technology-modal-dialog {
  position: relative;

  z-index: 2;

  width: min(720px, 100%);

  max-height: min(750px, 90vh);

  overflow-y: auto;

  background: #ffffff;

  border: 1px solid rgba(255, 255, 255, 0.7);

  border-radius: 24px;

  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.35);

  padding: 30px;

  transform: translateY(20px) scale(0.97);

  transition: transform 0.3s ease;
}

.technology-modal.modal-open .technology-modal-dialog {
  transform: translateY(0) scale(1);
}

.modal-close {
  position: absolute;

  right: 18px;
  top: 18px;

  width: 36px;
  height: 36px;

  display: grid;

  place-items: center;

  border-radius: 10px;

  background: #f2f4f7;

  color: var(--text-secondary);

  font-size: 22px;

  line-height: 1;

  cursor: pointer;

  transition:
    background 0.2s ease,
    color 0.2s ease;
}

.modal-close:hover {
  background: #e4e7ec;

  color: var(--text);
}

.modal-header {
  display: flex;

  align-items: center;

  gap: 18px;

  padding-right: 45px;
}

.modal-icon-wrapper {
  width: 70px;
  height: 70px;

  flex-shrink: 0;

  display: grid;

  place-items: center;

  border-radius: 18px;

  background: #f8f9fc;

  border: 1px solid var(--border);
}

.modal-icon-wrapper img {
  width: 45px;
  height: 45px;

  object-fit: contain;
}

.modal-category {
  display: block;

  color: var(--accent);

  font-size: 9px;

  font-weight: 800;

  text-transform: uppercase;

  letter-spacing: 0.12em;

  margin-bottom: 5px;
}

.modal-header h2 {
  font-size: 27px;

  letter-spacing: -0.035em;
}

.modal-header p {
  margin-top: 4px;

  color: var(--text-muted);

  font-size: 11px;
}

.modal-divider {
  height: 1px;

  background: var(--border);

  margin: 25px 0;
}

.modal-experience-list {
  display: flex;

  flex-direction: column;

  gap: 12px;
}

.modal-experience-item {
  display: grid;

  grid-template-columns: 40px 1fr;

  gap: 15px;

  padding: 17px;

  background: #f8f9fc;

  border: 1px solid var(--border);

  border-radius: 15px;
}

.modal-experience-number {
  color: var(--accent);

  font-size: 10px;

  font-weight: 900;

  padding-top: 3px;
}

.modal-experience-heading span {
  color: var(--accent);

  font-size: 9px;

  font-weight: 800;

  text-transform: uppercase;

  letter-spacing: 0.08em;
}

.modal-experience-heading h3 {
  margin-top: 4px;

  font-size: 15px;
}

.modal-experience-content p {
  margin-top: 9px;

  color: var(--text-secondary);

  font-size: 11px;

  line-height: 1.75;
}

.modal-empty {
  padding: 30px;

  text-align: center;

  color: var(--text-muted);

  font-size: 12px;

  background: var(--surface-soft);

  border-radius: 14px;
}

/* ============================================================
   EMPTY MESSAGE
============================================================ */

.empty-message {
  padding: 30px;

  color: var(--text-muted);

  background: white;

  border: 1px solid var(--border);

  border-radius: 15px;
}

/* ============================================================
   SCROLLBAR
============================================================ */

.technology-modal-dialog::-webkit-scrollbar {
  width: 6px;
}

.technology-modal-dialog::-webkit-scrollbar-track {
  background: transparent;
}

.technology-modal-dialog::-webkit-scrollbar-thumb {
  background: #d0d5dd;

  border-radius: 10px;
}

/* ============================================================
   MOBILE HEADER
   Hidden on desktop
============================================================ */

.mobile-header {
  display: none;
}

.mobile-menu {
  display: none;
}

/* ============================================================
   RESPONSIVE - TABLET
============================================================ */

@media (max-width: 1200px) {
  .main-content {
    padding: 30px;
  }

  .hero-visual {
    right: 4%;

    opacity: 0.7;
  }

  .technology-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ============================================================
   RESPONSIVE - MOBILE NAVIGATION
============================================================ */

@media (max-width: 900px) {
  /* ----------------------------------------------------------
     HIDE DESKTOP SIDEBAR
  ---------------------------------------------------------- */

  .sidebar {
    display: none;
  }

  /* ----------------------------------------------------------
     MOBILE HEADER
  ---------------------------------------------------------- */

  .mobile-header {
    position: fixed;

    left: 0;
    right: 0;
    top: 0;

    height: 72px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 0 20px;

    background: rgba(11, 18, 32, 0.96);

    backdrop-filter: blur(18px);

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);

    z-index: 900;
  }

  /* ----------------------------------------------------------
     MOBILE BRAND
  ---------------------------------------------------------- */

  .mobile-brand {
    display: flex;

    align-items: center;

    gap: 11px;
  }

  .mobile-brand-logo {
    width: 40px;
    height: 40px;

    display: grid;

    place-items: center;

    border-radius: 11px;

    background: linear-gradient(135deg, var(--accent), #8b5cf6);

    color: white;

    font-size: 13px;

    font-weight: 900;

    box-shadow: 0 8px 20px rgba(99, 91, 255, 0.3);
  }

  .mobile-brand-info {
    display: flex;

    flex-direction: column;

    gap: 2px;
  }

  .mobile-brand-info strong {
    color: white;

    font-size: 13px;

    line-height: 1;
  }

  .mobile-brand-info span {
    color: rgba(255, 255, 255, 0.45);

    font-size: 9px;
  }

  /* ----------------------------------------------------------
     HAMBURGER
  ---------------------------------------------------------- */

  .mobile-menu-toggle {
    width: 44px;
    height: 44px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    gap: 5px;

    background: rgba(255, 255, 255, 0.06);

    border: 1px solid rgba(255, 255, 255, 0.1);

    border-radius: 12px;

    cursor: pointer;

    transition:
      background 0.2s ease,
      transform 0.2s ease;
  }

  .mobile-menu-toggle:hover {
    background: rgba(255, 255, 255, 0.1);

    transform: translateY(-1px);
  }

  .mobile-menu-toggle span {
    width: 19px;
    height: 2px;

    border-radius: 10px;

    background: white;

    transition:
      transform 0.25s ease,
      opacity 0.25s ease;
  }

  /* ----------------------------------------------------------
     HAMBURGER → X
  ---------------------------------------------------------- */

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  /* ----------------------------------------------------------
     FULL SCREEN MENU
  ---------------------------------------------------------- */

  .mobile-menu {
    position: fixed;

    inset: 0;

    width: 100%;
    height: 100dvh;

    display: flex;

    flex-direction: column;

    background:
      radial-gradient(
        circle at 85% 10%,
        rgba(99, 91, 255, 0.2),
        transparent 30%
      ),
      radial-gradient(
        circle at 10% 90%,
        rgba(91, 33, 182, 0.18),
        transparent 30%
      ),
      #0b1220;

    color: white;

    z-index: 850;

    visibility: hidden;

    opacity: 0;

    pointer-events: none;

    transform: translateY(-10px);

    transition:
      opacity 0.25s ease,
      transform 0.25s ease,
      visibility 0.25s ease;
  }

  .mobile-menu.open {
    visibility: visible;

    opacity: 1;

    pointer-events: auto;

    transform: translateY(0);
  }

  /* ----------------------------------------------------------
     MOBILE MENU HEADER
  ---------------------------------------------------------- */

  .mobile-menu-header {
    height: 88px;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 0 20px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  /* ----------------------------------------------------------
     CLOSE BUTTON
  ---------------------------------------------------------- */

  .mobile-menu-close {
    width: 44px;
    height: 44px;

    display: grid;

    place-items: center;

    border-radius: 12px;

    background: rgba(255, 255, 255, 0.06);

    border: 1px solid rgba(255, 255, 255, 0.1);

    color: white;

    font-size: 29px;

    font-weight: 300;

    line-height: 1;

    cursor: pointer;

    transition:
      background 0.2s ease,
      transform 0.2s ease;
  }

  .mobile-menu-close:hover {
    background: rgba(255, 255, 255, 0.1);

    transform: rotate(90deg);
  }

  /* ----------------------------------------------------------
     MOBILE NAVIGATION
  ---------------------------------------------------------- */

  .mobile-navigation {
    flex: 1;

    display: flex;

    flex-direction: column;

    justify-content: center;

    gap: 7px;

    padding: 25px 20px;

    overflow-y: auto;
  }

  .mobile-nav-link {
    position: relative;

    display: grid;

    grid-template-columns: 38px 40px 1fr;

    align-items: center;

    gap: 10px;

    min-height: 64px;

    padding: 8px 14px;

    border-radius: 14px;

    text-decoration: none;

    color: rgba(255, 255, 255, 0.55);

    border: 1px solid transparent;

    transition:
      color 0.2s ease,
      background 0.2s ease,
      transform 0.2s ease,
      border-color 0.2s ease;
  }

  .mobile-nav-link:hover {
    color: white;

    background: rgba(255, 255, 255, 0.05);

    transform: translateX(4px);
  }

  .mobile-nav-link.active {
    color: white;

    background: linear-gradient(
      135deg,
      rgba(99, 91, 255, 0.22),
      rgba(124, 116, 255, 0.08)
    );

    border-color: rgba(124, 116, 255, 0.18);
  }

  .mobile-nav-link.active::before {
    content: "";

    position: absolute;

    left: 0;

    top: 12px;
    bottom: 12px;

    width: 3px;

    border-radius: 10px;

    background: var(--accent-light);
  }

  .mobile-nav-number {
    color: rgba(255, 255, 255, 0.25);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 0.08em;
  }

  .mobile-nav-link.active .mobile-nav-number {
    color: var(--accent-light);
  }

  .mobile-nav-icon {
    width: 36px;
    height: 36px;

    display: grid;

    place-items: center;

    border-radius: 10px;

    background: rgba(255, 255, 255, 0.05);

    font-size: 17px;
  }

  .mobile-nav-link.active .mobile-nav-icon {
    background: rgba(99, 91, 255, 0.18);

    color: #aaa3ff;
  }

  .mobile-nav-text {
    font-size: 18px;

    font-weight: 700;

    letter-spacing: -0.02em;
  }

  /* ----------------------------------------------------------
     MOBILE MENU FOOTER
  ---------------------------------------------------------- */

  .mobile-menu-footer {
    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    padding: 20px;

    border-top: 1px solid rgba(255, 255, 255, 0.08);
  }

  .mobile-availability {
    display: flex;

    align-items: center;

    gap: 10px;
  }

  .mobile-availability div {
    display: flex;

    flex-direction: column;

    gap: 2px;
  }

  .mobile-availability strong {
    font-size: 11px;
  }

  .mobile-availability small {
    color: rgba(255, 255, 255, 0.4);

    font-size: 9px;
  }

  .mobile-menu-footer-text {
    color: rgba(255, 255, 255, 0.2);

    font-size: 8px;

    font-weight: 800;

    letter-spacing: 0.15em;
  }

  /* ----------------------------------------------------------
     MAIN CONTENT
  ---------------------------------------------------------- */

  .main-content {
    width: 100%;

    margin-left: 0;

    padding: 102px 25px 80px;
  }

  /* ----------------------------------------------------------
     GENERAL MOBILE LAYOUT
  ---------------------------------------------------------- */

  .dashboard-grid,
  .two-column,
  .contact-3d {
    grid-template-columns: 1fr;
  }

  .hero-visual {
    right: -30px;

    opacity: 0.35;
  }

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .projects-grid,
  .skills-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   RESPONSIVE - SMALL MOBILE
============================================================ */

@media (max-width: 650px) {
  .mobile-header {
    height: 64px;

    padding: 0 15px;
  }

  .mobile-brand-logo {
    width: 36px;
    height: 36px;

    border-radius: 10px;

    font-size: 12px;
  }

  .mobile-brand-info strong {
    font-size: 12px;
  }

  .mobile-brand-info span {
    font-size: 8px;
  }

  .mobile-menu-toggle {
    width: 40px;
    height: 40px;

    border-radius: 11px;
  }

  /* ----------------------------------------------------------
     FULL SCREEN MENU
  ---------------------------------------------------------- */

  .mobile-menu-header {
    height: 78px;

    padding: 0 15px;
  }

  .mobile-menu-close {
    width: 40px;
    height: 40px;

    font-size: 26px;
  }

  .mobile-navigation {
    justify-content: flex-start;

    padding: 25px 15px;

    gap: 5px;
  }

  .mobile-nav-link {
    grid-template-columns: 30px 38px 1fr;

    min-height: 60px;

    padding: 7px 10px;
  }

  .mobile-nav-number {
    font-size: 8px;
  }

  .mobile-nav-icon {
    width: 34px;
    height: 34px;

    font-size: 15px;
  }

  .mobile-nav-text {
    font-size: 17px;
  }

  .mobile-menu-footer {
    padding: 15px;
  }

  .mobile-menu-footer-text {
    display: none;
  }

  /* ----------------------------------------------------------
     MAIN CONTENT
  ---------------------------------------------------------- */

  .main-content {
    padding: 88px 18px 60px;
  }

  .page-header {
    align-items: flex-start;

    flex-direction: column;
  }

  .header-status {
    display: none;
  }

  .page-header h1 {
    font-size: 38px;
  }

  /* ----------------------------------------------------------
     TECHNOLOGY CAROUSEL
  ---------------------------------------------------------- */

  .technology-carousel {
    border-radius: 14px;
  }

  .carousel-label {
    position: relative;

    width: 100%;

    height: 30px;

    justify-content: flex-start;

    padding-left: 15px;

    background: white;
  }

  .tech-ticker {
    padding-left: 15px;
  }

  /* ----------------------------------------------------------
     HERO
  ---------------------------------------------------------- */

  .hero-3d {
    padding: 35px 25px;

    min-height: 430px;

    border-radius: 20px;
  }

  .hero-visual {
    right: -100px;

    bottom: -20px;

    opacity: 0.3;

    transform: scale(0.8);
  }

  .hero-content {
    z-index: 3;
  }

  .hero-content h2 {
    font-size: 43px;
  }

  .hero-actions {
    flex-wrap: wrap;
  }

  /* ----------------------------------------------------------
     STATS
  ---------------------------------------------------------- */

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* ----------------------------------------------------------
     DASHBOARD
  ---------------------------------------------------------- */

  .dashboard-grid {
    gap: 12px;
  }

  .glass-card {
    padding: 20px;
  }

  /* ----------------------------------------------------------
     TECHNOLOGY
  ---------------------------------------------------------- */

  .technology-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .technology-card {
    padding: 9px;
  }

  .technology-arrow {
    display: none;
  }

  /* ----------------------------------------------------------
     EXPERIENCE
  ---------------------------------------------------------- */

  .experience-card {
    grid-template-columns: 1fr;
  }

  .experience-header {
    flex-direction: column;
  }

  /* ----------------------------------------------------------
     PROJECTS / SKILLS
  ---------------------------------------------------------- */

  .projects-grid,
  .skills-grid {
    grid-template-columns: 1fr;
  }

  /* ----------------------------------------------------------
     CONTACT
  ---------------------------------------------------------- */

  .contact-3d {
    padding: 30px 22px;
  }

  /* ----------------------------------------------------------
     MODAL
  ---------------------------------------------------------- */

  .technology-modal {
    padding: 12px;
  }

  .technology-modal-dialog {
    padding: 22px;

    border-radius: 20px;

    max-height: 94vh;
  }

  .modal-header {
    align-items: flex-start;
  }

  .modal-icon-wrapper {
    width: 58px;
    height: 58px;
  }

  .modal-icon-wrapper img {
    width: 36px;
    height: 36px;
  }

  .modal-header h2 {
    font-size: 22px;
  }
}

/* ============================================================
   EXTRA SMALL PHONES
============================================================ */

@media (max-width: 400px) {
  .mobile-nav-link {
    min-height: 56px;
  }

  .mobile-nav-text {
    font-size: 16px;
  }

  .main-content {
    padding-left: 14px;
    padding-right: 14px;
  }

  .hero-3d {
    padding: 30px 20px;
  }

  .hero-content h2 {
    font-size: 38px;
  }

  .stats-grid {
    gap: 8px;
  }

  .stat-card {
    padding: 15px;
  }

  .stat-number {
    font-size: 24px;
  }

  .stat-label {
    font-size: 8px;
  }
}
