:root {
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 3rem;
  --space-xl: 5rem;
  --color-primary: #0a0e14;
  --color-primary_dark: #0d1219;
  --color-primary_semi: #0a0e14F2;
  --color-accent: #b84d30;
  --color-accent_dark: #9a3f28;
  --color-accent_text: #8a3520;
  --color-accent_light: #f5a692;
  --color-secondary: #0fb5ba;
  --color-secondary_dark: #0b8e90;
  --color-secondary_text: #056669;
  --color-soft_bg: #f4f7fb;
  --color-white: #ffffff;
  --color-slate: #64748b;
  --color-gray: #4b5563;
  --color-gray_dark: #1f2937;
  --color-light_gray: #e2e8f0;
  --color-slate_light: #e2e8f0;
  --color-text_main: var(--color-primary);
  --color-text_muted: var(--color-gray_dark);
  --color-text_accent: var(--color-accent_text);
  --color-text_secondary: var(--color-secondary_text);
  --color-bg_hero: var(--color-soft_bg);
  --color-bg_light: var(--color-white);
  --color-bg_dark: var(--color-primary);
  --color-bg_accent_light: rgba(15, 181, 186, 0.12);
  --color-border_light: var(--color-light_gray);
  --color-shadow_color: rgba(0, 0, 0, 0.1);
  --color-shadow_dark: rgba(10, 14, 20, 0.5);
}


/* Global Reset for Gap-First Layout */
* { box-sizing: border-box; }
body { margin: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
h1, h2, h3, h4, h5, h6, p, ul, ol { margin: 0; padding: 0; }
img { display: block; max-width: 100%; }
.custom-style-1 { background-color: var(--color-primary); padding: 1.25rem; padding-right: calc(max(33vw, 320px) + 1.25rem); display: flex; justify-content: center; box-shadow: 0 2px 4px rgba(0,0,0,0.1); position: sticky; top: 0; z-index: 1000; }
.custom-style-2 { margin: 0 var(--space-sm); transition: color 0.2s ease; color: var(--color-white); text-decoration: none; font-weight: 600; }
.custom-style-3 { position: fixed; top: 0; right: 0; width: 400px; max-width: 100vw; height: 100vh; z-index: 50; overflow: hidden; background-color: var(--bg-hero); padding-top: var(--space-xl); padding-right: var(--space-md); box-sizing: border-box; }
.custom-style-4 { width: 100%; height: 100%; position: relative; }
.custom-style-5 { position: absolute; top: 0; left: 0; width: 100%; height: auto; display: block; transition: opacity 0.5s ease; }
.custom-style-6 { background-color: var(--bg-hero); padding: var(--space-xl) var(--space-md); padding-right: calc(max(33vw, 320px) + var(--space-md)); }
.custom-style-7 { display: grid; grid-template-columns: 1fr; gap: var(--space-lg); align-items: center; max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; min-height: 65vh; }
.custom-style-8 { grid-column: 1; }
.custom-style-9 { flex: 1 1 400px; display: flex; flex-direction: column; gap: var(--space-sm); }
.custom-style-10 { display: flex; flex-direction: column; gap: var(--space-xs); }
.custom-style-11 { color: var(--color-text_accent); text-transform: uppercase; letter-spacing: 0.25em; font-size: 0.75rem; font-weight: 600; }
.custom-style-12 { font-size: 3rem; font-weight: 700; line-height: 1.1; color: var(--color-text_main); }
.custom-style-13 { list-style-type: disc; padding-left: 1.25rem; margin-top: var(--space-xs); display: flex; flex-direction: column; gap: var(--space-xs); font-size: 1.25rem; line-height: 1.5; color: var(--color-text_muted); }
.custom-style-14 { font-size: 1.25rem; line-height: 1.5; color: var(--color-text_muted); }
.custom-style-15 { background-color: var(--color-accent); color: var(--color-white); padding: 0.875rem 1.75rem; border-radius: 0.5rem; font-weight: 600; text-decoration: none; display: inline-block; border: none; cursor: pointer; transition: all 0.3s ease; font-size: 1rem; margin-right: var(--space-sm); margin-bottom: var(--space-sm); align-self: flex-start; }
.custom-style-16 { background: linear-gradient(180deg, var(--color-primary), var(--color-primary_semi)); color: var(--color-white); padding: var(--space-xl) var(--space-md); padding-right: calc(max(33vw, 320px) + var(--space-md)); --color-text_main: var(--color-white); --color-text_muted: var(--color-slate_light); }
.custom-style-17 { font-size: 2.25rem; font-weight: 700; line-height: 1.3; color: var(--color-text_main); }
.custom-style-18 { font-size: 1.5rem; line-height: 1.4; font-weight: 300; color: var(--color-white); }
.custom-style-19 { background-color: var(--color-bg_accent_light); padding: var(--space-xl) var(--space-md); padding-right: calc(max(33vw, 320px) + var(--space-md)); }
.custom-style-20 { font-size: 1rem; line-height: 1.6; color: var(--color-text_main); }
.custom-style-21 { list-style-type: disc; padding-left: 1.25rem; margin-top: var(--space-xs); display: flex; flex-direction: column; gap: var(--space-xs); font-size: 1rem; line-height: 1.6; color: var(--color-text_muted); }
.custom-style-22 { background: linear-gradient(135deg, rgba(184, 77, 48, 0.15), rgba(184, 77, 48, 0.08)); border-left: 4px solid var(--color-accent); border-radius: 0.5rem; padding: var(--space-md); margin-top: var(--space-md); }
.custom-style-23 { font-size: 0.95rem; line-height: 1.6; color: var(--color-accent_text); font-weight: 500; }
.custom-style-24 { background: linear-gradient(135deg, rgba(184, 77, 48, 0.25), rgba(184, 77, 48, 0.15)); border-left: 4px solid var(--color-accent); border-radius: 0.5rem; padding: var(--space-md); margin-top: var(--space-md); }
.custom-style-25 { font-size: 0.95rem; line-height: 1.6; color: var(--color-accent_light); font-weight: 500; }
.custom-style-26 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; }
.custom-style-27 { grid-column: 1 / -1; }
.custom-style-28 { background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 1rem; padding: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-md); transition: all 0.3s ease; height: 100%; }
.custom-style-29 { font-size: 1.5rem; font-weight: 600; line-height: 1.4; color: var(--color-text_main); }
.custom-style-30 { font-size: 0.875rem; line-height: 1.5; color: var(--color-text_main); }
.custom-style-31 { list-style-type: disc; padding-left: 1.25rem; margin-top: var(--space-xs); display: flex; flex-direction: column; gap: var(--space-xs); font-size: 0.875rem; line-height: 1.5; color: var(--color-text_muted); }
.custom-style-32 { background: linear-gradient(135deg, rgba(5, 102, 105, 0.15), rgba(5, 102, 105, 0.08)); border-left: 4px solid var(--color-secondary_dark); border-radius: 0.5rem; padding: var(--space-md); margin-top: var(--space-md); }
.custom-style-33 { font-size: 0.95rem; line-height: 1.6; color: var(--color-secondary_text); font-weight: 500; }
.custom-style-34 { display: grid; grid-template-columns: 1fr; gap: var(--space-md); max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; }
.custom-style-35 { font-size: 1rem; line-height: 1.6; color: var(--color-text_muted); }
.custom-style-36 { position: relative; overflow: hidden; width: 100%; }
.custom-style-37 { display: flex; transition: transform 0.4s ease-in-out; gap: 0; }
.custom-style-38 { flex: 0 0 100%; min-width: 100%; scroll-snap-align: start; box-sizing: border-box; padding: 0 var(--space-sm); }
.custom-style-39 { --color-text_main: var(--color-primary); --color-text_muted: var(--color-gray_dark); --color-text_accent: var(--color-accent_text); background: var(--color-white); background-color: var(--color-white); border-radius: 1rem; padding: var(--space-md); box-shadow: 0 4px 6px -1px var(--shadow-color); transition: all 0.3s ease; border: 1px solid var(--border-light); color: var(--color-primary); }
.custom-style-40 { font-size: 1.125rem; font-weight: 600; line-height: 1.4; color: var(--color-text_main); }
.custom-style-41 { font-size: 0.875rem; line-height: 1.5; color: var(--color-text_muted); }
.custom-style-42 { display: flex; justify-content: center; align-items: center; gap: var(--space-md); margin-top: var(--space-md); }
.custom-style-43 { background-color: var(--color-accent); color: var(--color-white); border: none; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; font-size: 1.25rem; font-weight: bold; order: 1; }
.custom-style-44 { display: flex; gap: var(--space-xs); align-items: center; }
.custom-style-45 { background-color: var(--color-accent); color: var(--color-white); border: none; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; font-size: 1.25rem; font-weight: bold; order: 3; }
.custom-style-46 { background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)); border: 1px solid rgba(15, 181, 186, 0.3); border-radius: 1rem; padding: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-sm); transition: all 0.3s ease; color: var(--color-white); --color-text_main: var(--color-white); --color-text_muted: var(--color-slate_light); }
.custom-style-47 { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-xs); padding-bottom: var(--space-xs); border-bottom: 1px solid rgba(15, 181, 186, 0.2); }
.custom-style-48 { color: var(--color-slate_light); font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; }
.custom-style-49 { color: var(--color-white); font-size: 0.875rem; font-weight: 500; background: rgba(15, 181, 186, 0.25); padding: 0.25rem 0.75rem; border-radius: 1rem; }
.custom-style-50 { color: var(--color-slate_light); font-size: 0.875rem; font-weight: 500; font-style: italic; margin-top: var(--space-xs); padding-top: var(--space-xs); border-top: 1px solid rgba(255, 255, 255, 0.1); }
.custom-style-51 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--space-md); align-items: start; max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; }
.custom-style-52 { background-color: var(--color-bg_light); padding: var(--space-xl) var(--space-md); padding-right: calc(max(33vw, 320px) + var(--space-md)); }
.custom-style-53 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-md); max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; }
.custom-style-54 { display: grid; grid-template-columns: 1fr; gap: var(--space-md); align-items: center; max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; min-height: 45vh; }
.custom-style-55 { background-color: var(--color-primary); color: var(--color-white); padding: var(--space-lg) var(--space-md); padding-right: calc(max(33vw, 320px) + var(--space-md)); --color-text_main: var(--color-white); --color-text_muted: var(--color-slate_light); }
.custom-style-56 { display: flex; justify-content: center; gap: var(--space-lg); flex-wrap: wrap; margin-bottom: var(--space-sm); }
.custom-style-57 { color: var(--color-slate_light); text-decoration: none; font-size: 0.875rem; transition: color 0.2s ease; }
.custom-style-58 { color: var(--color-slate_light); font-size: 0.875rem; line-height: 1.6; text-align: center; }
.custom-style-59 { background-color: var(--bg-light); padding: var(--space-xl); margin: var(--space-lg); max-width: 900px; }
.custom-style-60 { font-size: 2.5rem; font-weight: 700; line-height: 1.2; color: var(--color-text_main); margin-bottom: var(--space-md); }
.custom-style-61 { font-size: 0.9375rem; line-height: 1.5; color: var(--color-text_muted); }
.custom-style-62 { font-size: 1.125rem; font-weight: 600; line-height: 1.4; color: var(--color-text_main); margin-top: var(--space-lg); margin-bottom: var(--space-xs); }
.custom-style-63 { font-size: 1rem; font-weight: 600; line-height: 1.4; color: var(--color-text_main); margin-top: var(--space-md); }
.custom-style-64 { font-size: 0.9rem; font-weight: 600; line-height: 1.4; color: var(--color-text_main); margin-top: var(--space-sm); }
.custom-style-65 { font-size: 0.875rem; line-height: 1.5; color: var(--color-text_main); font-weight: 600; margin-top: var(--space-xs); }
.custom-style-66 { background: linear-gradient(135deg, var(--color-primary), var(--color-primary_dark)); padding: var(--space-xl) var(--space-lg); min-height: 40vh; display: flex; flex-direction: column; justify-content: center; }
.custom-style-67 { display: inline-flex; align-items: center; gap: var(--space-xs); color: var(--color-secondary); font-weight: 600; text-decoration: none; padding: var(--space-sm) 0; }
.custom-style-68 { font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.15em; color: var(--color-secondary); margin-bottom: var(--space-xs); }
.custom-style-69 { font-size: 2.5rem; font-weight: 800; color: var(--color-white); margin-bottom: var(--space-sm); line-height: 1.2; }
.custom-style-70 { font-size: 1.125rem; color: var(--color-slate_light); line-height: 1.6; max-width: 800px; }
.custom-style-71 { background-color: var(--bg-light); padding: var(--space-xl) var(--space-lg); }
.custom-style-72 { display: grid; grid-template-columns: 3fr 2fr; gap: var(--space-lg); align-items: start; max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; }
.custom-style-73 { font-size: 1.5rem; font-weight: 700; color: var(--color-primary); margin-bottom: var(--space-sm); display: flex; align-items: center; gap: var(--space-sm); }
.custom-style-74 { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; background: var(--color-secondary); color: var(--color-white); border-radius: 50%; font-weight: 700; font-size: 1rem; }
.custom-style-75 { font-size: 1.0625rem; line-height: 1.8; color: var(--color-text_muted); margin-bottom: var(--space-md); }
.custom-style-76 { background: linear-gradient(135deg, rgba(15, 181, 186, 0.15), rgba(15, 181, 186, 0.08)); border-radius: 0.75rem; padding: var(--space-md); margin: var(--space-md) 0; }
.custom-style-77 { font-size: 1rem; line-height: 1.6; color: var(--color-text_main); font-weight: 700; }
.custom-style-78 { grid-column: 2; }
.custom-style-79 { width: 100%; max-width: 320px; aspect-ratio: 1/1; background: linear-gradient(135deg, var(--color-primary), var(--color-primary_dark)); border-radius: 1rem; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.custom-style-80 { background: linear-gradient(135deg, rgba(10, 14, 20, 0.03), rgba(10, 14, 20, 0.01)); padding: var(--space-xl) var(--space-lg); }
.custom-style-81 { display: grid; grid-template-columns: 2fr 3fr; gap: var(--space-lg); align-items: start; max-width: 1100px; margin-left: auto; margin-right: auto; width: 100%; }
.custom-style-82 { background: linear-gradient(135deg, rgba(5, 102, 105, 0.2), rgba(5, 102, 105, 0.1)); border-left: 4px solid var(--color-secondary_dark); border-radius: 0.5rem; padding: var(--space-md); margin: var(--space-md) 0; }
.custom-style-83 { font-size: 1rem; font-weight: 700; color: var(--color-secondary_dark); margin-bottom: var(--space-xs); }
.custom-style-84 { background: linear-gradient(135deg, rgba(15, 181, 186, 0.1), rgba(15, 181, 186, 0.05)); padding: var(--space-xl) var(--space-lg); border-left: 4px solid var(--color-secondary); }
.custom-style-85 { background: linear-gradient(180deg, var(--color-primary), var(--color-primary_dark)); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--space-xl) var(--space-md); text-align: center; }
.custom-style-86 { max-width: 600px; display: flex; flex-direction: column; align-items: center; gap: var(--space-md); }
.custom-style-87 { font-size: 8rem; font-weight: 800; line-height: 1; background: linear-gradient(135deg, var(--color-secondary), var(--color-accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin: 0; }
.custom-style-88 { font-size: 2rem; font-weight: 700; color: var(--color-white); margin: 0; }
.custom-style-89 { font-size: 1.25rem; line-height: 1.6; color: var(--color-slate_light); margin: 0; }
.custom-style-90 { font-size: 1rem; line-height: 1.6; color: var(--color-slate); font-style: italic; margin: 0; }
.custom-style-91 { display: flex; flex-wrap: wrap; gap: var(--space-sm); justify-content: center; margin-top: var(--space-md); }
.custom-style-92 { background-color: var(--color-accent); color: var(--color-white); padding: 0.875rem 1.75rem; border-radius: 0.5rem; font-weight: 600; text-decoration: none; display: inline-block; border: none; cursor: pointer; transition: all 0.3s ease; font-size: 1rem; }
.custom-style-93 { background-color: transparent; color: var(--color-accent); border: 2px solid var(--color-accent); padding: 0.75rem 1.625rem; border-radius: 0.5rem; font-weight: 600; text-decoration: none; display: inline-block; transition: all 0.3s ease; font-size: 1rem; }
.custom-style-94 { font-size: 0.75rem; color: var(--color-slate); margin-top: var(--space-lg); font-family: monospace; opacity: 0.7; }

body {
  color: #0B1F33;
  background-color: #F4F7FB;
}
nav {
  background: #ffffff;
  padding: 16px;
  display: flex;
  justify-content: center;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  position: sticky;
  top: 0;
  z-index: 50;
}
nav a {
  color: #0B1F33;
  margin: 0 15px;
  text-decoration: none;
  font-weight: 500;
}
nav a:hover {
  color: #0FB5BA;
}
section {
  padding: 0;
}
footer {
  background-color: #ffffff;
  color: #64748b;
  text-align: center;
  padding: 32px;
  border-top: 1px solid #e2e8f0;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
button {
  cursor: pointer;
}
@media (max-width: 600px) {
  nav {
    flex-direction: column;
    align-items: center;
  }
  nav a {
    margin: 8px 0;
  }
}

/* Mobile-responsive: Hide sidebar and adjust layout */
@media (max-width: 1024px) {
  #sidebar,
  section[id="sidebar"] {
    display: none !important;
  }
  
  .pixel-canvas-container {
    display: none !important;
  }
  
  html, body, main {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }
  
  .custom-style-1,
  .custom-style-6,
  .custom-style-16,
  .custom-style-19,
  .custom-style-45,
  .custom-style-47,
  .custom-style-49,
  .custom-style-52 {
    padding-right: var(--space-md, 1.5rem) !important;
  }
  
  nav, section, footer, header {
    padding-right: var(--space-md, 1.5rem) !important;
  }
  
  h1 {
    font-size: 2rem !important;
  }
  
  p, h1, h2, h3, h4, h5, h6, li {
    word-wrap: break-word;
    overflow-wrap: break-word;
  }
  
  .layout-TwoByTwoLayout {
    grid-template-columns: 1fr !important;
  }
  
  .ProjectCarousel,
  .ReferenceCarousel,
  [class*="carousel_container"] {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
  }
  
  .ProjectCarousel > [role="region"],
  .ReferenceCarousel > [role="region"],
  [role="region"][aria-label*="Karussell"] {
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-behavior: smooth !important;
    transform: none !important;
    padding-bottom: var(--space-sm) !important;
    gap: var(--space-sm) !important;
  }
  
  .ProjectCarousel > [role="region"] > div,
  .ReferenceCarousel > [role="region"] > div,
  [role="region"][aria-label*="Karussell"] > div {
    flex: 0 0 85vw !important;
    min-width: 85vw !important;
    max-width: 85vw !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
    padding: 0 var(--space-xs) !important;
  }
  
  [role="group"][aria-label*="Navigation"] button {
    display: none !important;
  }
  
  [role="group"][aria-label*="Navigation"] {
    justify-content: center !important;
  }
  
  .reference_header,
  [class*="reference_header"],
  .custom-style-47 {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: var(--space-xs) !important;
  }
}

/* Pixel Drop Effect */
.pixel-canvas-container {
  width: 100%;
  height: 100%;
  position: relative;
}
.pixel-canvas-container canvas {
  width: 100%;
  height: 100%;
  display: block;
}
.pixel-fallback {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: block;
  transition: opacity 0.5s ease;
}
.pixel-active .pixel-fallback {
  opacity: 0;
  pointer-events: none;
}

/* === DECORATIONS (Visual Sugar Layer) === */

/* Decoration: hero_parallax */
.decoration-hero_parallax {
  background-image: url('images/andrew1.jpg'); background-position: center; background-size: cover; background-attachment: fixed; background-repeat: no-repeat;
}

.decoration-hero_parallax::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(10, 14, 20, 0.85);
  pointer-events: none;
}

.decoration-hero_parallax {
  position: relative;
}

/* Decoration: card_hover_lift */
.decoration-card_hover_lift .ServiceCard img, .decoration-card_hover_lift .ScenarioCard img, .decoration-card_hover_lift .ProjectItem img {
  transition: transform 0.4s ease;
}

.decoration-card_hover_lift .ServiceCard:hover img, .decoration-card_hover_lift .ScenarioCard:hover img, .decoration-card_hover_lift .ProjectItem:hover img {
  transform: scale(1.05);
}

.decoration-card_hover_lift .ServiceCard, .decoration-card_hover_lift .ScenarioCard, .decoration-card_hover_lift .ProjectItem {
  border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease;
}

.decoration-card_hover_lift .ServiceCard:hover, .decoration-card_hover_lift .ScenarioCard:hover, .decoration-card_hover_lift .ProjectItem:hover {
  box-shadow: 0 16px 32px -8px rgba(15, 181, 186, 0.4); transform: translateY(-6px);
  border-color: rgba(255, 255, 255, 0.3);
}
