{"id":39,"date":"2026-08-05T15:40:50","date_gmt":"2026-08-05T15:40:50","guid":{"rendered":"https:\/\/geometrygrove.com\/?page_id=39"},"modified":"2026-08-05T16:10:28","modified_gmt":"2026-08-05T16:10:28","slug":"newindex","status":"publish","type":"page","link":"https:\/\/geometrygrove.com\/","title":{"rendered":"NewIndex"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.23&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.23&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code _builder_version=&#8221;4.23&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] --><meta charset=\"UTF-8\" \/><!-- [et_pb_line_break_holder] --><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\" \/><!-- [et_pb_line_break_holder] --><meta name=\"theme-color\" content=\"#0a0f0a\" \/><!-- [et_pb_line_break_holder] --><title>Geometry Grove \u2014 3D Modeling Studio<\/title><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  :root {<!-- [et_pb_line_break_holder] -->    --bg: #070a07;<!-- [et_pb_line_break_holder] -->    --bg-2: #0d1410;<!-- [et_pb_line_break_holder] -->    --fg: #e8f1ea;<!-- [et_pb_line_break_holder] -->    --muted: #8ba593;<!-- [et_pb_line_break_holder] -->    --accent: #4ade80;<!-- [et_pb_line_break_holder] -->    --accent-2: #16a34a;<!-- [et_pb_line_break_holder] -->    --accent-lime: #a3e635;<!-- [et_pb_line_break_holder] -->    --accent-glow: rgba(74, 222, 128, 0.4);<!-- [et_pb_line_break_holder] -->    --glass: rgba(13, 22, 16, 0.55);<!-- [et_pb_line_break_holder] -->    --glass-heavy: rgba(7, 14, 10, 0.85);<!-- [et_pb_line_break_holder] -->    --border: rgba(255, 255, 255, 0.08);<!-- [et_pb_line_break_holder] -->    --border-hover: rgba(74, 222, 128, 0.25);<!-- [et_pb_line_break_holder] -->    --safe-top: env(safe-area-inset-top, 0px);<!-- [et_pb_line_break_holder] -->    --safe-bottom: env(safe-area-inset-bottom, 0px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  * { box-sizing: border-box; margin: 0; padding: 0; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  html, body {<!-- [et_pb_line_break_holder] -->    height: 100%;<!-- [et_pb_line_break_holder] -->    background: var(--bg);<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;<!-- [et_pb_line_break_holder] -->    overflow: hidden;<!-- [et_pb_line_break_holder] -->    -webkit-font-smoothing: antialiased;<!-- [et_pb_line_break_holder] -->    -webkit-tap-highlight-color: transparent;<!-- [et_pb_line_break_holder] -->    touch-action: manipulation;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #canvas-container {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    z-index: 0;<!-- [et_pb_line_break_holder] -->    background:<!-- [et_pb_line_break_holder] -->      radial-gradient(ellipse at 20% 10%, rgba(74, 222, 128, 0.09), transparent 50%),<!-- [et_pb_line_break_holder] -->      radial-gradient(ellipse at 80% 90%, rgba(163, 230, 53, 0.07), transparent 50%),<!-- [et_pb_line_break_holder] -->      var(--bg);<!-- [et_pb_line_break_holder] -->    transition: filter 0.5s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  body.section-open #canvas-container { filter: blur(12px) brightness(0.4); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  canvas { display: block; touch-action: none; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* ---------- UI OVERLAY ---------- *\/<!-- [et_pb_line_break_holder] -->  .ui { position: fixed; inset: 0; pointer-events: none; z-index: 10; }<!-- [et_pb_line_break_holder] -->  .ui > * { pointer-events: auto; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .topbar {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: calc(16px + var(--safe-top));<!-- [et_pb_line_break_holder] -->    left: 20px; right: 20px;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    justify-content: space-between;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .logo {<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 12px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    font-size: 15px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.12em;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .logo-mark {<!-- [et_pb_line_break_holder] -->    width: 42px; height: 42px;<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .logo-mark img {<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    height: 100%;<!-- [et_pb_line_break_holder] -->    object-fit: contain;<!-- [et_pb_line_break_holder] -->    display: block;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .nav { display: flex; gap: 28px; }<!-- [et_pb_line_break_holder] -->  .nav a {<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    text-decoration: none;<!-- [et_pb_line_break_holder] -->    font-size: 13px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.1em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    transition: color 0.2s;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .nav a:hover, .nav a.active { color: var(--fg); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .cta {<!-- [et_pb_line_break_holder] -->    padding: 10px 18px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, var(--accent), var(--accent-lime));<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->    border: none;<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    font-size: 13px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.05em;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: transform 0.2s, box-shadow 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .cta:hover {<!-- [et_pb_line_break_holder] -->    transform: translateY(-1px);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 8px 24px var(--accent-glow);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .hamburger {<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->    width: 44px; height: 44px;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    flex-direction: column;<!-- [et_pb_line_break_holder] -->    gap: 4px;<!-- [et_pb_line_break_holder] -->    padding: 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .hamburger span {<!-- [et_pb_line_break_holder] -->    display: block;<!-- [et_pb_line_break_holder] -->    width: 18px; height: 2px;<!-- [et_pb_line_break_holder] -->    background: var(--fg);<!-- [et_pb_line_break_holder] -->    border-radius: 2px;<!-- [et_pb_line_break_holder] -->    transition: all 0.3s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .hamburger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }<!-- [et_pb_line_break_holder] -->  .hamburger.open span:nth-child(2) { opacity: 0; }<!-- [et_pb_line_break_holder] -->  .hamburger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .drawer {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    top: 0; right: 0;<!-- [et_pb_line_break_holder] -->    width: min(320px, 85vw);<!-- [et_pb_line_break_holder] -->    height: 100%;<!-- [et_pb_line_break_holder] -->    background: var(--glass-heavy);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(24px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(24px);<!-- [et_pb_line_break_holder] -->    border-left: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    z-index: 60;<!-- [et_pb_line_break_holder] -->    transform: translateX(100%);<!-- [et_pb_line_break_holder] -->    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);<!-- [et_pb_line_break_holder] -->    padding: calc(80px + var(--safe-top)) 24px 24px;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    flex-direction: column;<!-- [et_pb_line_break_holder] -->    gap: 8px;<!-- [et_pb_line_break_holder] -->    overflow-y: auto;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .drawer.open { transform: translateX(0); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .drawer-backdrop {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    background: rgba(0, 0, 0, 0.5);<!-- [et_pb_line_break_holder] -->    z-index: 55;<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.3s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .drawer-backdrop.open { opacity: 1; pointer-events: auto; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .drawer a {<!-- [et_pb_line_break_holder] -->    display: block;<!-- [et_pb_line_break_holder] -->    padding: 16px 18px;<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    text-decoration: none;<!-- [et_pb_line_break_holder] -->    font-size: 15px;<!-- [et_pb_line_break_holder] -->    font-weight: 500;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.05em;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    transition: background 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .drawer a:hover, .drawer a.active {<!-- [et_pb_line_break_holder] -->    background: rgba(74, 222, 128, 0.1);<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .drawer-divider { height: 1px; background: var(--border); margin: 12px 0; }<!-- [et_pb_line_break_holder] -->  .drawer-label {<!-- [et_pb_line_break_holder] -->    font-size: 11px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.15em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    padding: 0 18px;<!-- [et_pb_line_break_holder] -->    margin-bottom: 8px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .drawer-model {<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 12px;<!-- [et_pb_line_break_holder] -->    padding: 12px 18px;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: background 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .drawer-model:hover { background: rgba(255, 255, 255, 0.04); }<!-- [et_pb_line_break_holder] -->  .drawer-model.active { background: rgba(74, 222, 128, 0.1); }<!-- [et_pb_line_break_holder] -->  .drawer-model-thumb {<!-- [et_pb_line_break_holder] -->    width: 36px; height: 36px;<!-- [et_pb_line_break_holder] -->    border-radius: 8px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, var(--accent), var(--accent-lime));<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    font-size: 15px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .drawer-model-name { font-size: 14px; font-weight: 500; }<!-- [et_pb_line_break_holder] -->  .drawer-model-cat { font-size: 11px; color: var(--muted); margin-top: 2px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .info {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    left: 24px;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%);<!-- [et_pb_line_break_holder] -->    max-width: 380px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .tag {<!-- [et_pb_line_break_holder] -->    display: inline-block;<!-- [et_pb_line_break_holder] -->    padding: 6px 12px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    font-size: 11px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.15em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->    margin-bottom: 16px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .title {<!-- [et_pb_line_break_holder] -->    font-size: clamp(28px, 4vw, 56px);<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    line-height: 1.05;<!-- [et_pb_line_break_holder] -->    letter-spacing: -0.02em;<!-- [et_pb_line_break_holder] -->    margin-bottom: 14px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(180deg, #fff 0%, #8ba593 100%);<!-- [et_pb_line_break_holder] -->    -webkit-background-clip: text;<!-- [et_pb_line_break_holder] -->    background-clip: text;<!-- [et_pb_line_break_holder] -->    -webkit-text-fill-color: transparent;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .desc {<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    font-size: 14px;<!-- [et_pb_line_break_holder] -->    line-height: 1.6;<!-- [et_pb_line_break_holder] -->    margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .stats {<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    gap: 24px;<!-- [et_pb_line_break_holder] -->    padding: 14px 18px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    width: fit-content;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .stat-value { font-size: 16px; font-weight: 600; color: var(--fg); }<!-- [et_pb_line_break_holder] -->  .stat-label {<!-- [et_pb_line_break_holder] -->    font-size: 10px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.15em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    margin-top: 3px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .picker {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    right: 24px;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    flex-direction: column;<!-- [et_pb_line_break_holder] -->    gap: 10px;<!-- [et_pb_line_break_holder] -->    width: 220px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .picker-title {<!-- [et_pb_line_break_holder] -->    font-size: 11px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.15em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    margin-bottom: 2px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .model-card {<!-- [et_pb_line_break_holder] -->    padding: 12px 14px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 12px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .model-card:hover {<!-- [et_pb_line_break_holder] -->    border-color: var(--border-hover);<!-- [et_pb_line_break_holder] -->    transform: translateX(-4px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .model-card.active {<!-- [et_pb_line_break_holder] -->    border-color: var(--accent);<!-- [et_pb_line_break_holder] -->    background: rgba(74, 222, 128, 0.1);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 0 24px rgba(74, 222, 128, 0.15);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .model-thumb {<!-- [et_pb_line_break_holder] -->    width: 38px; height: 38px;<!-- [et_pb_line_break_holder] -->    border-radius: 8px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, var(--accent), var(--accent-lime));<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    font-size: 17px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .model-name { font-size: 13px; font-weight: 600; }<!-- [et_pb_line_break_holder] -->  .model-cat { font-size: 10px; color: var(--muted); margin-top: 2px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .mobile-strip {<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    bottom: calc(90px + var(--safe-bottom));<!-- [et_pb_line_break_holder] -->    left: 0; right: 0;<!-- [et_pb_line_break_holder] -->    padding: 0 16px;<!-- [et_pb_line_break_holder] -->    overflow-x: auto;<!-- [et_pb_line_break_holder] -->    overflow-y: hidden;<!-- [et_pb_line_break_holder] -->    white-space: nowrap;<!-- [et_pb_line_break_holder] -->    scrollbar-width: none;<!-- [et_pb_line_break_holder] -->    -webkit-overflow-scrolling: touch;<!-- [et_pb_line_break_holder] -->    mask-image: linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);<!-- [et_pb_line_break_holder] -->    -webkit-mask-image: linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .mobile-strip::-webkit-scrollbar { display: none; }<!-- [et_pb_line_break_holder] -->  .mobile-strip-inner { display: inline-flex; gap: 10px; padding: 4px 0; }<!-- [et_pb_line_break_holder] -->  .strip-card {<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 10px;<!-- [et_pb_line_break_holder] -->    padding: 8px 14px 8px 8px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .strip-card.active {<!-- [et_pb_line_break_holder] -->    border-color: var(--accent);<!-- [et_pb_line_break_holder] -->    background: rgba(74, 222, 128, 0.12);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .strip-thumb {<!-- [et_pb_line_break_holder] -->    width: 28px; height: 28px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, var(--accent), var(--accent-lime));<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .strip-name { font-size: 12px; font-weight: 600; white-space: nowrap; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .controls {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    bottom: calc(24px + var(--safe-bottom));<!-- [et_pb_line_break_holder] -->    left: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateX(-50%);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    gap: 6px;<!-- [et_pb_line_break_holder] -->    padding: 6px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .ctrl-btn {<!-- [et_pb_line_break_holder] -->    width: 44px; height: 44px;<!-- [et_pb_line_break_holder] -->    border: none;<!-- [et_pb_line_break_holder] -->    background: transparent;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->    -webkit-tap-highlight-color: transparent;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .ctrl-btn:hover { background: rgba(255,255,255,0.06); color: var(--fg); }<!-- [et_pb_line_break_holder] -->  .ctrl-btn.active { background: var(--accent); color: #0a0f0a; }<!-- [et_pb_line_break_holder] -->  .ctrl-btn svg { width: 18px; height: 18px; }<!-- [et_pb_line_break_holder] -->  .divider { width: 1px; background: var(--border); margin: 10px 2px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .loader {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    background: var(--bg);<!-- [et_pb_line_break_holder] -->    z-index: 100;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    flex-direction: column;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.6s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .loader.hidden { opacity: 0; pointer-events: none; }<!-- [et_pb_line_break_holder] -->  .loader-ring {<!-- [et_pb_line_break_holder] -->    width: 60px; height: 60px;<!-- [et_pb_line_break_holder] -->    border: 2px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-top-color: var(--accent);<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    animation: spin 1s linear infinite;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .loader-text {<!-- [et_pb_line_break_holder] -->    margin-top: 20px;<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.2em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  @keyframes spin { to { transform: rotate(360deg); } }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .model-fade {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    background: var(--bg);<!-- [et_pb_line_break_holder] -->    z-index: 5;<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.4s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .model-fade.active { opacity: 0.6; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .swipe-hint {<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    bottom: calc(150px + var(--safe-bottom));<!-- [et_pb_line_break_holder] -->    left: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateX(-50%);<!-- [et_pb_line_break_holder] -->    font-size: 11px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.15em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    padding: 6px 12px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.4s;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .swipe-hint.show { opacity: 1; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* ============================================================<!-- [et_pb_line_break_holder] -->     CALLOUTS<!-- [et_pb_line_break_holder] -->     ============================================================ *\/<!-- [et_pb_line_break_holder] -->  .callouts-layer {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    z-index: 8;<!-- [et_pb_line_break_holder] -->    overflow: hidden;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .callout {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 0; left: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: auto;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%);<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.3s;<!-- [et_pb_line_break_holder] -->    z-index: 1;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callout.hidden { opacity: 0; pointer-events: none; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .callout-dot {<!-- [et_pb_line_break_holder] -->    width: 16px; height: 16px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: var(--accent);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 0 0 0 var(--accent-glow);<!-- [et_pb_line_break_holder] -->    animation: callout-pulse 2s infinite;<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    transition: transform 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callout-dot::before {<!-- [et_pb_line_break_holder] -->    content: '';<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    inset: 4px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: var(--bg);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callout:hover .callout-dot { transform: scale(1.2); }<!-- [et_pb_line_break_holder] -->  .callout.active .callout-dot {<!-- [et_pb_line_break_holder] -->    background: var(--accent-lime);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 0 0 0 rgba(163, 230, 53, 0.6);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @keyframes callout-pulse {<!-- [et_pb_line_break_holder] -->    0% { box-shadow: 0 0 0 0 var(--accent-glow); }<!-- [et_pb_line_break_holder] -->    70% { box-shadow: 0 0 0 14px rgba(74, 222, 128, 0); }<!-- [et_pb_line_break_holder] -->    100% { box-shadow: 0 0 0 0 var(--accent-glow); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .callout-label {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    left: 24px;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%);<!-- [et_pb_line_break_holder] -->    white-space: nowrap;<!-- [et_pb_line_break_holder] -->    padding: 8px 14px;<!-- [et_pb_line_break_holder] -->    background: var(--glass-heavy);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 8px;<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    font-weight: 500;<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.2s, transform 0.2s;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%) translateX(-4px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callout-label::before {<!-- [et_pb_line_break_holder] -->    content: '';<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    left: -5px;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%) rotate(45deg);<!-- [et_pb_line_break_holder] -->    width: 8px; height: 8px;<!-- [et_pb_line_break_holder] -->    background: var(--glass-heavy);<!-- [et_pb_line_break_holder] -->    border-left: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-bottom: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callout:hover .callout-label,<!-- [et_pb_line_break_holder] -->  .callout.active .callout-label {<!-- [et_pb_line_break_holder] -->    opacity: 1;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%) translateX(0);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callout-label small {<!-- [et_pb_line_break_holder] -->    display: block;<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->    font-size: 10px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.1em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    margin-top: 2px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .callouts-reset {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: calc(80px + var(--safe-top));<!-- [et_pb_line_break_holder] -->    left: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateX(-50%);<!-- [et_pb_line_break_holder] -->    padding: 10px 18px;<!-- [et_pb_line_break_holder] -->    background: var(--glass-heavy);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--accent);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    font-weight: 600;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.1em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    z-index: 9;<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.3s, transform 0.3s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .callouts-reset.visible { opacity: 1; pointer-events: auto; }<!-- [et_pb_line_break_holder] -->  .callouts-reset:hover {<!-- [et_pb_line_break_holder] -->    background: var(--accent);<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* ============================================================<!-- [et_pb_line_break_holder] -->     SECTIONS<!-- [et_pb_line_break_holder] -->     ============================================================ *\/<!-- [et_pb_line_break_holder] -->  .section {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    z-index: 50;<!-- [et_pb_line_break_holder] -->    background: rgba(7, 10, 7, 0.6);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(2px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(2px);<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.4s;<!-- [et_pb_line_break_holder] -->    overflow-y: auto;<!-- [et_pb_line_break_holder] -->    -webkit-overflow-scrolling: touch;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .section.active { opacity: 1; pointer-events: auto; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .section-inner {<!-- [et_pb_line_break_holder] -->    max-width: 1200px;<!-- [et_pb_line_break_holder] -->    margin: 0 auto;<!-- [et_pb_line_break_holder] -->    padding: 100px 40px 60px;<!-- [et_pb_line_break_holder] -->    min-height: 100vh;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .section-header {<!-- [et_pb_line_break_holder] -->    margin-bottom: 40px;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    justify-content: space-between;<!-- [et_pb_line_break_holder] -->    align-items: flex-end;<!-- [et_pb_line_break_holder] -->    flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->    gap: 20px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .section-title {<!-- [et_pb_line_break_holder] -->    font-size: clamp(32px, 5vw, 56px);<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    letter-spacing: -0.02em;<!-- [et_pb_line_break_holder] -->    line-height: 1.05;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(180deg, #fff 0%, #8ba593 100%);<!-- [et_pb_line_break_holder] -->    -webkit-background-clip: text;<!-- [et_pb_line_break_holder] -->    background-clip: text;<!-- [et_pb_line_break_holder] -->    -webkit-text-fill-color: transparent;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .section-subtitle {<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    font-size: 15px;<!-- [et_pb_line_break_holder] -->    max-width: 500px;<!-- [et_pb_line_break_holder] -->    line-height: 1.6;<!-- [et_pb_line_break_holder] -->    margin-top: 12px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .close-section {<!-- [et_pb_line_break_holder] -->    width: 44px; height: 44px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .close-section:hover {<!-- [et_pb_line_break_holder] -->    background: var(--accent);<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->    transform: rotate(90deg);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .close-section svg { width: 18px; height: 18px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .services-grid {<!-- [et_pb_line_break_holder] -->    display: grid;<!-- [et_pb_line_break_holder] -->    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));<!-- [et_pb_line_break_holder] -->    gap: 16px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .service-card {<!-- [et_pb_line_break_holder] -->    padding: 28px 24px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 16px;<!-- [et_pb_line_break_holder] -->    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    overflow: hidden;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .service-card::before {<!-- [et_pb_line_break_holder] -->    content: '';<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 0; left: 0; right: 0;<!-- [et_pb_line_break_holder] -->    height: 2px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(90deg, var(--accent), var(--accent-lime));<!-- [et_pb_line_break_holder] -->    transform: scaleX(0);<!-- [et_pb_line_break_holder] -->    transform-origin: left;<!-- [et_pb_line_break_holder] -->    transition: transform 0.4s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .service-card:hover {<!-- [et_pb_line_break_holder] -->    border-color: var(--border-hover);<!-- [et_pb_line_break_holder] -->    transform: translateY(-4px);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .service-card:hover::before { transform: scaleX(1); }<!-- [et_pb_line_break_holder] -->  .service-icon {<!-- [et_pb_line_break_holder] -->    width: 52px; height: 52px;<!-- [et_pb_line_break_holder] -->    border-radius: 14px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, rgba(74, 222, 128, 0.18), rgba(163, 230, 53, 0.15));<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    font-size: 26px;<!-- [et_pb_line_break_holder] -->    margin-bottom: 18px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .service-name { font-size: 18px; font-weight: 600; margin-bottom: 8px; letter-spacing: -0.01em; }<!-- [et_pb_line_break_holder] -->  .service-desc { color: var(--muted); font-size: 13px; line-height: 1.6; margin-bottom: 14px; }<!-- [et_pb_line_break_holder] -->  .service-features { list-style: none; display: flex; flex-direction: column; gap: 6px; }<!-- [et_pb_line_break_holder] -->  .service-features li {<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 8px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .service-features li::before {<!-- [et_pb_line_break_holder] -->    content: '';<!-- [et_pb_line_break_holder] -->    width: 4px; height: 4px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: var(--accent);<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .gallery-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }<!-- [et_pb_line_break_holder] -->  .filter-btn {<!-- [et_pb_line_break_holder] -->    padding: 8px 16px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.1em;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .filter-btn:hover { color: var(--fg); border-color: var(--border-hover); }<!-- [et_pb_line_break_holder] -->  .filter-btn.active {<!-- [et_pb_line_break_holder] -->    background: var(--accent);<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->    border-color: var(--accent);<!-- [et_pb_line_break_holder] -->    font-weight: 600;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .gallery-grid {<!-- [et_pb_line_break_holder] -->    display: grid;<!-- [et_pb_line_break_holder] -->    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));<!-- [et_pb_line_break_holder] -->    gap: 12px;<!-- [et_pb_line_break_holder] -->    grid-auto-rows: 220px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .gallery-item {<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    overflow: hidden;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    background: var(--bg-2);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    transition: transform 0.3s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .gallery-item.tall { grid-row: span 2; }<!-- [et_pb_line_break_holder] -->  .gallery-item.wide { grid-column: span 2; }<!-- [et_pb_line_break_holder] -->  .gallery-item img {<!-- [et_pb_line_break_holder] -->    width: 100%; height: 100%;<!-- [et_pb_line_break_holder] -->    object-fit: cover;<!-- [et_pb_line_break_holder] -->    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .gallery-item:hover img { transform: scale(1.05); }<!-- [et_pb_line_break_holder] -->  .gallery-overlay {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(to top, rgba(7,10,7,0.95) 0%, transparent 60%);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    flex-direction: column;<!-- [et_pb_line_break_holder] -->    justify-content: flex-end;<!-- [et_pb_line_break_holder] -->    padding: 18px;<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.3s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .gallery-item:hover .gallery-overlay { opacity: 1; }<!-- [et_pb_line_break_holder] -->  .gallery-item-title { font-size: 15px; font-weight: 600; margin-bottom: 4px; }<!-- [et_pb_line_break_holder] -->  .gallery-item-cat { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--accent); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .lightbox {<!-- [et_pb_line_break_holder] -->    position: fixed;<!-- [et_pb_line_break_holder] -->    inset: 0;<!-- [et_pb_line_break_holder] -->    z-index: 200;<!-- [et_pb_line_break_holder] -->    background: rgba(0, 0, 0, 0.95);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    pointer-events: none;<!-- [et_pb_line_break_holder] -->    transition: opacity 0.3s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .lightbox.active { opacity: 1; pointer-events: auto; }<!-- [et_pb_line_break_holder] -->  .lightbox img {<!-- [et_pb_line_break_holder] -->    max-width: 92vw;<!-- [et_pb_line_break_holder] -->    max-height: 80vh;<!-- [et_pb_line_break_holder] -->    border-radius: 8px;<!-- [et_pb_line_break_holder] -->    box-shadow: 0 20px 60px rgba(0,0,0,0.5);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .lightbox-nav {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateY(-50%);<!-- [et_pb_line_break_holder] -->    width: 52px; height: 52px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .lightbox-nav:hover { background: var(--accent); color: #0a0f0a; }<!-- [et_pb_line_break_holder] -->  .lightbox-nav.prev { left: 20px; }<!-- [et_pb_line_break_holder] -->  .lightbox-nav.next { right: 20px; }<!-- [et_pb_line_break_holder] -->  .lightbox-nav svg { width: 22px; height: 22px; }<!-- [et_pb_line_break_holder] -->  .lightbox-close {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 20px; right: 20px;<!-- [et_pb_line_break_holder] -->    width: 48px; height: 48px;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(12px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .lightbox-close:hover { background: var(--accent); color: #0a0f0a; }<!-- [et_pb_line_break_holder] -->  .lightbox-caption {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    bottom: calc(24px + var(--safe-bottom));<!-- [et_pb_line_break_holder] -->    left: 50%;<!-- [et_pb_line_break_holder] -->    transform: translateX(-50%);<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    max-width: 80vw;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .lightbox-caption h3 { font-size: 16px; margin-bottom: 4px; }<!-- [et_pb_line_break_holder] -->  .lightbox-caption p { font-size: 11px; color: var(--muted); letter-spacing: 0.15em; text-transform: uppercase; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .contact-wrap {<!-- [et_pb_line_break_holder] -->    display: grid;<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr 1.3fr;<!-- [et_pb_line_break_holder] -->    gap: 40px;<!-- [et_pb_line_break_holder] -->    align-items: start;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .contact-info h3 { font-size: 22px; font-weight: 600; margin-bottom: 14px; letter-spacing: -0.01em; }<!-- [et_pb_line_break_holder] -->  .contact-info p { color: var(--muted); line-height: 1.6; margin-bottom: 24px; font-size: 14px; }<!-- [et_pb_line_break_holder] -->  .contact-detail {<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    gap: 14px;<!-- [et_pb_line_break_holder] -->    padding: 12px 0;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .contact-detail:last-child { border-bottom: 1px solid var(--border); }<!-- [et_pb_line_break_holder] -->  .contact-detail-icon {<!-- [et_pb_line_break_holder] -->    width: 40px; height: 40px;<!-- [et_pb_line_break_holder] -->    border-radius: 10px;<!-- [et_pb_line_break_holder] -->    background: rgba(74, 222, 128, 0.12);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->    flex-shrink: 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .contact-detail-icon svg { width: 18px; height: 18px; }<!-- [et_pb_line_break_holder] -->  .contact-detail-label { font-size: 10px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }<!-- [et_pb_line_break_holder] -->  .contact-detail-value { font-size: 14px; color: var(--fg); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .contact-form {<!-- [et_pb_line_break_holder] -->    padding: 28px;<!-- [et_pb_line_break_holder] -->    background: var(--glass);<!-- [et_pb_line_break_holder] -->    backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    -webkit-backdrop-filter: blur(16px);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 20px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }<!-- [et_pb_line_break_holder] -->  .form-group { display: flex; flex-direction: column; gap: 8px; }<!-- [et_pb_line_break_holder] -->  .form-group.full { grid-column: 1 \/ -1; }<!-- [et_pb_line_break_holder] -->  .form-label { font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--muted); }<!-- [et_pb_line_break_holder] -->  .form-input, .form-select, .form-textarea {<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    padding: 14px 16px;<!-- [et_pb_line_break_holder] -->    background: rgba(0,0,0,0.3);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 10px;<!-- [et_pb_line_break_holder] -->    color: var(--fg);<!-- [et_pb_line_break_holder] -->    font-family: inherit;<!-- [et_pb_line_break_holder] -->    font-size: 14px;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->    outline: none;<!-- [et_pb_line_break_holder] -->    -webkit-appearance: none;<!-- [et_pb_line_break_holder] -->    appearance: none;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .form-input:focus, .form-select:focus, .form-textarea:focus {<!-- [et_pb_line_break_holder] -->    border-color: var(--accent);<!-- [et_pb_line_break_holder] -->    background: rgba(0,0,0,0.5);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.12);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .form-textarea { resize: vertical; min-height: 120px; }<!-- [et_pb_line_break_holder] -->  .form-select {<!-- [et_pb_line_break_holder] -->    background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238ba593' stroke-width='2'><path d='M6 9l6 6 6-6'\/><\/svg>\");<!-- [et_pb_line_break_holder] -->    background-repeat: no-repeat;<!-- [et_pb_line_break_holder] -->    background-position: right 16px center;<!-- [et_pb_line_break_holder] -->    padding-right: 40px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .form-select option { background: var(--bg-2); }<!-- [et_pb_line_break_holder] -->  .budget-row { display: flex; gap: 8px; flex-wrap: wrap; }<!-- [et_pb_line_break_holder] -->  .budget-chip {<!-- [et_pb_line_break_holder] -->    padding: 8px 14px;<!-- [et_pb_line_break_holder] -->    background: rgba(0,0,0,0.3);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--border);<!-- [et_pb_line_break_holder] -->    border-radius: 999px;<!-- [et_pb_line_break_holder] -->    color: var(--muted);<!-- [et_pb_line_break_holder] -->    font-size: 12px;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .budget-chip:hover { color: var(--fg); }<!-- [et_pb_line_break_holder] -->  .budget-chip.active {<!-- [et_pb_line_break_holder] -->    background: var(--accent);<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->    border-color: var(--accent);<!-- [et_pb_line_break_holder] -->    font-weight: 600;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .submit-btn {<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    padding: 16px;<!-- [et_pb_line_break_holder] -->    margin-top: 8px;<!-- [et_pb_line_break_holder] -->    background: linear-gradient(135deg, var(--accent), var(--accent-lime));<!-- [et_pb_line_break_holder] -->    color: #0a0f0a;<!-- [et_pb_line_break_holder] -->    border: none;<!-- [et_pb_line_break_holder] -->    border-radius: 12px;<!-- [et_pb_line_break_holder] -->    font-size: 14px;<!-- [et_pb_line_break_holder] -->    font-weight: 700;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.05em;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .submit-btn:hover {<!-- [et_pb_line_break_holder] -->    transform: translateY(-2px);<!-- [et_pb_line_break_holder] -->    box-shadow: 0 12px 32px var(--accent-glow);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .submit-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }<!-- [et_pb_line_break_holder] -->  .form-success {<!-- [et_pb_line_break_holder] -->    padding: 16px;<!-- [et_pb_line_break_holder] -->    background: rgba(74, 222, 128, 0.12);<!-- [et_pb_line_break_holder] -->    border: 1px solid var(--accent);<!-- [et_pb_line_break_holder] -->    border-radius: 10px;<!-- [et_pb_line_break_holder] -->    color: var(--accent);<!-- [et_pb_line_break_holder] -->    font-size: 14px;<!-- [et_pb_line_break_holder] -->    margin-top: 16px;<!-- [et_pb_line_break_holder] -->    display: none;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .form-success.show { display: block; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* ============================================================<!-- [et_pb_line_break_holder] -->     MOBILE RESPONSIVE<!-- [et_pb_line_break_holder] -->     ============================================================ *\/<!-- [et_pb_line_break_holder] -->  @media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->    .nav { display: none; }<!-- [et_pb_line_break_holder] -->    .cta { display: none; }<!-- [et_pb_line_break_holder] -->    .hamburger { display: flex; }<!-- [et_pb_line_break_holder] -->    .picker { display: none; }<!-- [et_pb_line_break_holder] -->    .mobile-strip { display: block; }<!-- [et_pb_line_break_holder] -->    .swipe-hint { display: block; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .topbar { top: calc(12px + var(--safe-top)); left: 16px; right: 16px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .info {<!-- [et_pb_line_break_holder] -->      left: 16px; right: 16px;<!-- [et_pb_line_break_holder] -->      top: auto;<!-- [et_pb_line_break_holder] -->      bottom: calc(160px + var(--safe-bottom));<!-- [et_pb_line_break_holder] -->      transform: none;<!-- [et_pb_line_break_holder] -->      max-width: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .title { font-size: clamp(22px, 6vw, 32px); margin-bottom: 8px; }<!-- [et_pb_line_break_holder] -->    .desc {<!-- [et_pb_line_break_holder] -->      font-size: 13px;<!-- [et_pb_line_break_holder] -->      margin-bottom: 12px;<!-- [et_pb_line_break_holder] -->      display: -webkit-box;<!-- [et_pb_line_break_holder] -->      -webkit-line-clamp: 2;<!-- [et_pb_line_break_holder] -->      -webkit-box-orient: vertical;<!-- [et_pb_line_break_holder] -->      overflow: hidden;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .tag { margin-bottom: 10px; padding: 5px 10px; font-size: 10px; }<!-- [et_pb_line_break_holder] -->    .stats { padding: 10px 14px; gap: 16px; }<!-- [et_pb_line_break_holder] -->    .stat-value { font-size: 14px; }<!-- [et_pb_line_break_holder] -->    .stat-label { font-size: 9px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .controls { bottom: calc(16px + var(--safe-bottom)); padding: 5px; gap: 4px; }<!-- [et_pb_line_break_holder] -->    .ctrl-btn { width: 40px; height: 40px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .section-inner { padding: calc(80px + var(--safe-top)) 20px calc(40px + var(--safe-bottom)); }<!-- [et_pb_line_break_holder] -->    .section-header { margin-bottom: 28px; }<!-- [et_pb_line_break_holder] -->    .section-title { font-size: clamp(28px, 8vw, 40px); }<!-- [et_pb_line_break_holder] -->    .section-subtitle { font-size: 14px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; gap: 8px; }<!-- [et_pb_line_break_holder] -->    .gallery-item.tall { grid-row: span 2; }<!-- [et_pb_line_break_holder] -->    .gallery-item.wide { grid-column: span 2; }<!-- [et_pb_line_break_holder] -->    .gallery-overlay { opacity: 1; padding: 12px; }<!-- [et_pb_line_break_holder] -->    .gallery-item-title { font-size: 13px; }<!-- [et_pb_line_break_holder] -->    .gallery-item-cat { font-size: 9px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .contact-wrap { grid-template-columns: 1fr; gap: 28px; }<!-- [et_pb_line_break_holder] -->    .contact-form { padding: 20px; }<!-- [et_pb_line_break_holder] -->    .form-row { grid-template-columns: 1fr; gap: 12px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .lightbox-nav { width: 48px; height: 48px; }<!-- [et_pb_line_break_holder] -->    .lightbox-nav.prev { left: 12px; }<!-- [et_pb_line_break_holder] -->    .lightbox-nav.next { right: 12px; }<!-- [et_pb_line_break_holder] -->    .lightbox-close { top: calc(12px + var(--safe-top)); right: 12px; width: 44px; height: 44px; }<!-- [et_pb_line_break_holder] -->    .lightbox img { max-width: 96vw; max-height: 75vh; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .callout-label { font-size: 11px; padding: 6px 10px; }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (max-width: 420px) {<!-- [et_pb_line_break_holder] -->    .gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 140px; }<!-- [et_pb_line_break_holder] -->    .stats { gap: 12px; }<!-- [et_pb_line_break_holder] -->    .stat-value { font-size: 13px; }<!-- [et_pb_line_break_holder] -->    .stat-label { font-size: 8px; }<!-- [et_pb_line_break_holder] -->    .info { bottom: calc(150px + var(--safe-bottom)); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (max-height: 500px) and (orientation: landscape) {<!-- [et_pb_line_break_holder] -->    .info {<!-- [et_pb_line_break_holder] -->      left: 16px; right: auto; bottom: auto;<!-- [et_pb_line_break_holder] -->      top: calc(70px + var(--safe-top));<!-- [et_pb_line_break_holder] -->      transform: none;<!-- [et_pb_line_break_holder] -->      max-width: 320px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .desc { display: none; }<!-- [et_pb_line_break_holder] -->    .stats { display: none; }<!-- [et_pb_line_break_holder] -->    .mobile-strip { bottom: calc(70px + var(--safe-bottom)); }<!-- [et_pb_line_break_holder] -->    .controls { bottom: calc(12px + var(--safe-bottom)); }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (prefers-reduced-motion: reduce) {<!-- [et_pb_line_break_holder] -->    *, *::before, *::after {<!-- [et_pb_line_break_holder] -->      animation-duration: 0.01ms !important;<!-- [et_pb_line_break_holder] -->      transition-duration: 0.01ms !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"canvas-container\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"model-fade\" id=\"fade\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"callouts-layer\" id=\"callouts-layer\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><button class=\"callouts-reset\" id=\"callouts-reset\">\u21ba Reset View<\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"loader\" id=\"loader\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"loader-ring\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"loader-text\">Loading Scene<\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- UI Overlay --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"ui\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"topbar\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"logo\" data-section=\"home\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"logo-mark\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/geometrygrove.com\/wp-content\/uploads\/2023\/11\/Geogrove.png\" alt=\"Geometry Grove\" \/><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <span>GEOMETRY GROVE<\/span><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<nav class=\"nav\"><!-- [et_pb_line_break_holder] -->      <a data-section=\"home\" class=\"active\">Work<\/a><!-- [et_pb_line_break_holder] -->      <a data-section=\"services\">Services<\/a><!-- [et_pb_line_break_holder] -->      <a data-section=\"gallery\">Gallery<\/a><!-- [et_pb_line_break_holder] -->      <a data-section=\"contact\">Contact<\/a><!-- [et_pb_line_break_holder] -->    <\/nav>\n<p><!-- [et_pb_line_break_holder] -->    <button class=\"cta\" data-section=\"contact\">Start Project \u2192<\/button><!-- [et_pb_line_break_holder] -->    <button class=\"hamburger\" id=\"hamburger\" aria-label=\"Menu\"><!-- [et_pb_line_break_holder] -->      <span><\/span><span><\/span><span><\/span><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"info\"><!-- [et_pb_line_break_holder] -->    <span class=\"tag\" id=\"tag\">Featured Work<\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<h1 class=\"title\" id=\"title\">Damaged Helmet<\/h1>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"desc\" id=\"desc\">A battle-worn sci-fi helmet. Click the glowing callouts to explore details.<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"stats\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"stat-value\" id=\"stat1\">\u2014<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"stat-label\">Triangles<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"stat-value\" id=\"stat2\">\u2014<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"stat-label\">Materials<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"stat-value\" id=\"stat3\">\u2014<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"stat-label\">Textures<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"picker\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"picker-title\">Portfolio<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div id=\"picker-list\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mobile-strip\" id=\"mobile-strip\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mobile-strip-inner\" id=\"mobile-strip-inner\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"swipe-hint\" id=\"swipe-hint\">\u2190 Swipe to browse \u2192<\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"controls\"><!-- [et_pb_line_break_holder] -->    <button class=\"ctrl-btn\" id=\"btn-prev\" title=\"Previous\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M15 18l-6-6 6-6\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->    <button class=\"ctrl-btn active\" id=\"btn-rotate\" title=\"Auto-rotate\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 12a9 9 0 11-6.219-8.56\"\/><path d=\"M21 3v6h-6\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->    <button class=\"ctrl-btn\" id=\"btn-reset\" title=\"Reset view\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M12 2v4m0 12v4m10-10h-4M6 12H2m15.07-7.07l-2.83 2.83M9.76 14.24l-2.83 2.83m0-10.14l2.83 2.83m4.48 4.48l2.83 2.83\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"divider\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <button class=\"ctrl-btn\" id=\"btn-next\" title=\"Next\"><!-- [et_pb_line_break_holder] -->      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18l6-6-6-6\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/button><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Mobile drawer --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"drawer-backdrop\" id=\"drawer-backdrop\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<aside class=\"drawer\" id=\"drawer\" aria-hidden=\"true\"><!-- [et_pb_line_break_holder] -->  <a data-section=\"home\" class=\"active\">Work<\/a><!-- [et_pb_line_break_holder] -->  <a data-section=\"services\">Services<\/a><!-- [et_pb_line_break_holder] -->  <a data-section=\"gallery\">Gallery<\/a><!-- [et_pb_line_break_holder] -->  <a data-section=\"contact\">Contact<\/a><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"drawer-divider\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"drawer-label\">Models<\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"drawer-models\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/aside>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Services --><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"section\" id=\"section-services\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"section-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"section-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div><!-- [et_pb_line_break_holder] -->        <\/p>\n<h2 class=\"section-title\">Services<\/h2>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"section-subtitle\">From concept to final render \u2014 we handle every stage of the 3D pipeline with obsessive attention to detail.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button class=\"close-section\" data-close><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"services-grid\" id=\"services-grid\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Gallery --><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"section\" id=\"section-gallery\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"section-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"section-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div><!-- [et_pb_line_break_holder] -->        <\/p>\n<h2 class=\"section-title\">Gallery<\/h2>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"section-subtitle\">A curated selection of 2D renders, concept art, and behind-the-scenes work from recent projects.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button class=\"close-section\" data-close><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gallery-filters\" id=\"gallery-filters\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"gallery-grid\" id=\"gallery-grid\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Lightbox --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"lightbox\" id=\"lightbox\"><!-- [et_pb_line_break_holder] -->  <button class=\"lightbox-close\" id=\"lightbox-close\"><!-- [et_pb_line_break_holder] -->    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"20\" height=\"20\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->  <\/button><!-- [et_pb_line_break_holder] -->  <button class=\"lightbox-nav prev\" id=\"lightbox-prev\"><!-- [et_pb_line_break_holder] -->    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M15 18l-6-6 6-6\"\/><\/svg><!-- [et_pb_line_break_holder] -->  <\/button><!-- [et_pb_line_break_holder] -->  <img decoding=\"async\" id=\"lightbox-img\" src=\"\" alt=\"\" \/><!-- [et_pb_line_break_holder] -->  <button class=\"lightbox-nav next\" id=\"lightbox-next\"><!-- [et_pb_line_break_holder] -->    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18l6-6-6-6\"\/><\/svg><!-- [et_pb_line_break_holder] -->  <\/button><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"lightbox-caption\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<h3 id=\"lightbox-title\"><\/h3>\n<p><!-- [et_pb_line_break_holder] -->    <pee id=\"lightbox-cat\"><\/pee><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Contact --><!-- [et_pb_line_break_holder] --><\/p>\n<section class=\"section\" id=\"section-contact\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"section-inner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"section-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div><!-- [et_pb_line_break_holder] -->        <\/p>\n<h2 class=\"section-title\">Let&#8217;s Build Something<\/h2>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"section-subtitle\">Tell us about your project. We typically respond within 24 hours.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <button class=\"close-section\" data-close><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6L6 18M6 6l12 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/button><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"contact-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"contact-info\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3>Get in touch<\/h3>\n<p><!-- [et_pb_line_break_holder] -->        <pee>Whether you have a fully-specified brief or just a rough idea, we&#8217;d love to hear about it.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"contact-detail\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"contact-detail-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><path d=\"M22 6l-10 7L2 6\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"contact-detail-label\">Email<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"contact-detail-value\">hello@geometrygrove.studio<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"contact-detail\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"contact-detail-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"contact-detail-label\">Studio<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"contact-detail-value\">Remote \u00b7 Worldwide<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"contact-detail\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"contact-detail-icon\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 6v6l4 2\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"contact-detail-label\">Response time<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"contact-detail-value\">Within 24 hours<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<form class=\"contact-form\" id=\"contact-form\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"form-row\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"form-group\"><!-- [et_pb_line_break_holder] -->            <label class=\"form-label\" for=\"f-name\">Name<\/label><!-- [et_pb_line_break_holder] -->            <input class=\"form-input\" id=\"f-name\" type=\"text\" required placeholder=\"Jane Doe\" \/><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"form-group\"><!-- [et_pb_line_break_holder] -->            <label class=\"form-label\" for=\"f-email\">Email<\/label><!-- [et_pb_line_break_holder] -->            <input class=\"form-input\" id=\"f-email\" type=\"email\" required placeholder=\"jane@company.com\" \/><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"form-row\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"form-group\"><!-- [et_pb_line_break_holder] -->            <label class=\"form-label\" for=\"f-type\">Project Type<\/label><!-- [et_pb_line_break_holder] -->            <select class=\"form-select\" id=\"f-type\" required><!-- [et_pb_line_break_holder] --><option value=\"\">Select one&#8230;<\/option><!-- [et_pb_line_break_holder] --><option>Character Modeling<\/option><!-- [et_pb_line_break_holder] --><option>Environment \/ Scene<\/option><!-- [et_pb_line_break_holder] --><option>Product Visualization<\/option><!-- [et_pb_line_break_holder] --><option>Game Asset<\/option><!-- [et_pb_line_break_holder] --><option>Animation<\/option><!-- [et_pb_line_break_holder] --><option>Other<\/option><!-- [et_pb_line_break_holder] -->            <\/select><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"form-group\"><!-- [et_pb_line_break_holder] -->            <label class=\"form-label\" for=\"f-timeline\">Timeline<\/label><!-- [et_pb_line_break_holder] -->            <select class=\"form-select\" id=\"f-timeline\"><!-- [et_pb_line_break_holder] --><option value=\"\">Select&#8230;<\/option><!-- [et_pb_line_break_holder] --><option>ASAP<\/option><!-- [et_pb_line_break_holder] --><option>1\u20132 weeks<\/option><!-- [et_pb_line_break_holder] --><option>1 month<\/option><!-- [et_pb_line_break_holder] --><option>Flexible<\/option><!-- [et_pb_line_break_holder] -->            <\/select><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"form-group full\" style=\"margin-bottom: 14px;\"><!-- [et_pb_line_break_holder] -->          <label class=\"form-label\">Budget Range<\/label><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"budget-row\" id=\"budget-row\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"budget-chip\" data-budget=\"< $1k\">&lt; $1k<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"budget-chip\" data-budget=\"$1k\u2013$5k\">$1k\u2013$5k<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"budget-chip\" data-budget=\"$5k\u2013$15k\">$5k\u2013$15k<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"budget-chip\" data-budget=\"$15k+\">$15k+<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"budget-chip\" data-budget=\"Let's discuss\">Let&#8217;s discuss<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"form-group full\" style=\"margin-bottom: 14px;\"><!-- [et_pb_line_break_holder] -->          <label class=\"form-label\" for=\"f-msg\">Project Details<\/label><!-- [et_pb_line_break_holder] -->          <textarea class=\"form-textarea\" id=\"f-msg\" required placeholder=\"Tell us about your vision...\"><\/textarea><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <button type=\"submit\" class=\"submit-btn\" id=\"submit-btn\">Send Message \u2192<\/button><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"form-success\" id=\"form-success\"><!-- [et_pb_line_break_holder] -->          \u2713 Thanks! We&#8217;ve received your message and will be in touch soon.<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/form>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script type=\"importmap\"><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  \"imports\": {<!-- [et_pb_line_break_holder] -->    \"three\": \"https:\/\/unpkg.com\/three@0.160.0\/build\/three.module.js\",<!-- [et_pb_line_break_holder] -->    \"three\/addons\/\": \"https:\/\/unpkg.com\/three@0.160.0\/examples\/jsm\/\"<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script type=\"module\"><!-- [et_pb_line_break_holder] -->import * as THREE from 'three';<!-- [et_pb_line_break_holder] -->import { OrbitControls } from 'three\/addons\/controls\/OrbitControls.js';<!-- [et_pb_line_break_holder] -->import { GLTFLoader } from 'three\/addons\/loaders\/GLTFLoader.js';<!-- [et_pb_line_break_holder] -->import { DRACOLoader } from 'three\/addons\/loaders\/DRACOLoader.js';<!-- [et_pb_line_break_holder] -->import { RoomEnvironment } from 'three\/addons\/environments\/RoomEnvironment.js';<!-- [et_pb_line_break_holder] -->import { EffectComposer } from 'three\/addons\/postprocessing\/EffectComposer.js';<!-- [et_pb_line_break_holder] -->import { RenderPass } from 'three\/addons\/postprocessing\/RenderPass.js';<!-- [et_pb_line_break_holder] -->import { UnrealBloomPass } from 'three\/addons\/postprocessing\/UnrealBloomPass.js';<!-- [et_pb_line_break_holder] -->import { OutputPass } from 'three\/addons\/postprocessing\/OutputPass.js';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   MODEL CONFIG<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const MODELS = [<!-- [et_pb_line_break_holder] -->  {<!-- [et_pb_line_break_holder] -->    name: 'Damaged Helmet',<!-- [et_pb_line_break_holder] -->    category: 'Sci-Fi Prop',<!-- [et_pb_line_break_holder] -->    description: 'A battle-worn sci-fi helmet. Click the glowing callouts to explore details.',<!-- [et_pb_line_break_holder] -->    url: 'https:\/\/threejs.org\/examples\/models\/gltf\/DamagedHelmet\/glTF\/DamagedHelmet.gltf',<!-- [et_pb_line_break_holder] -->    thumbnail: 'H',<!-- [et_pb_line_break_holder] -->    camera: { position: [0, 0, 3.5], target: [0, 0, 0] },<!-- [et_pb_line_break_holder] -->    autoRotateSpeed: 0.4,<!-- [et_pb_line_break_holder] -->    callouts: [<!-- [et_pb_line_break_holder] -->      { label: 'Gold Visor', subtitle: 'Anodized titanium', position: [0.55, 0.15, 0.55], animation: { type: 'camera', position: [1.5, 0.3, 1.5], target: [0.3, 0.1, 0.3] } },<!-- [et_pb_line_break_holder] -->      { label: 'Battle Scars', subtitle: 'Procedural weathering', position: [-0.6, -0.2, 0.4], animation: { type: 'highlight', mesh: 'DamagedHelmet', color: '#4ade80' } },<!-- [et_pb_line_break_holder] -->      { label: 'Rear Vents', subtitle: 'Cooling system', position: [-0.4, 0.3, -0.6], animation: { type: 'rotate', euler: [0, Math.PI * 0.75, 0] } },<!-- [et_pb_line_break_holder] -->      { label: 'Full View', subtitle: 'Overview', position: [0, 0.9, 0], animation: { type: 'camera', position: [0, 0, 3.5], target: [0, 0, 0] } }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  },<!-- [et_pb_line_break_holder] -->  {<!-- [et_pb_line_break_holder] -->    name: 'Materials Showcase',<!-- [et_pb_line_break_holder] -->    category: 'Material Study',<!-- [et_pb_line_break_holder] -->    description: 'Advanced PBR material variants \u2014 metalness, roughness, and clearcoat.',<!-- [et_pb_line_break_holder] -->    url: 'https:\/\/threejs.org\/examples\/models\/gltf\/MaterialsVariantsShoe\/glTF\/MaterialsVariantsShoe.gltf',<!-- [et_pb_line_break_holder] -->    thumbnail: 'M',<!-- [et_pb_line_break_holder] -->    camera: { position: [3, 1.5, 3], target: [0, 0, 0] },<!-- [et_pb_line_break_holder] -->    autoRotateSpeed: 0.3,<!-- [et_pb_line_break_holder] -->    callouts: [<!-- [et_pb_line_break_holder] -->      { label: 'Toe Box', subtitle: 'Woven textile', position: [0.8, 0.2, 0.4], animation: { type: 'camera', position: [2, 0.5, 1.5], target: [0.5, 0.2, 0.3] } },<!-- [et_pb_line_break_holder] -->      { label: 'Sole Unit', subtitle: 'Layered rubber', position: [0, -0.4, 0.5], animation: { type: 'highlight', mesh: 'Shoe', color: '#a3e635' } },<!-- [et_pb_line_break_holder] -->      { label: 'Profile', subtitle: 'Side angle', position: [-0.8, 0.3, 0], animation: { type: 'rotate', euler: [0, -Math.PI \/ 2, 0] } }<!-- [et_pb_line_break_holder] -->    ]<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const SERVICES = [<!-- [et_pb_line_break_holder] -->  { icon: '\ud83c\udfad', name: 'Character Modeling', description: 'High-fidelity characters for games, film, and VR.', features: ['Sculpting in ZBrush', 'Retopology & UVs', 'PBR texturing', 'Rig-ready output'] },<!-- [et_pb_line_break_holder] -->  { icon: '\ud83c\udfd4\ufe0f', name: 'Environment Design', description: 'Immersive worlds and scenes built for real-time engines.', features: ['Modular kits', 'Unreal \/ Unity export', 'Lightmap-ready', 'LOD optimization'] },<!-- [et_pb_line_break_holder] -->  { icon: '\ud83d\udce6', name: 'Product Visualization', description: 'Photoreal renders for marketing, e-commerce, and AR\/VR.', features: ['Studio lighting', 'Material accuracy', 'Turntable animation', 'AR-ready GLB'] },<!-- [et_pb_line_break_holder] -->  { icon: '\ud83c\udfae', name: 'Game Assets', description: 'Optimized, engine-ready assets with clean topology.', features: ['Draco-compressed GLB', 'PBR pipelines', 'LOD chains', 'Shader variants'] },<!-- [et_pb_line_break_holder] -->  { icon: '\ud83c\udfac', name: 'Animation', description: 'Character animation and procedural effects.', features: ['Keyframe & mocap', 'Rigging', 'Blend shapes', 'Timeline delivery'] },<!-- [et_pb_line_break_holder] -->  { icon: '\u2699\ufe0f', name: 'Technical Art', description: 'Custom shaders, procedural tools, and pipeline solutions.', features: ['Shader graphs', 'Houdini PDGs', 'Blender addons', 'Pipeline automation'] }<!-- [et_pb_line_break_holder] -->];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const GALLERY = [<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove1\/800\/1000', title: 'Neon Ronin', category: 'Character', size: 'tall' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove2\/1200\/600', title: 'Orbital Station', category: 'Environment', size: 'wide' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove3\/600\/600',  title: 'Chrome Sneaker', category: 'Product', size: 'normal' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove4\/600\/600',  title: 'Forest Shrine', category: 'Environment', size: 'normal' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove5\/600\/600',  title: 'Mech Warrior', category: 'Character', size: 'normal' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove6\/1200\/600', title: 'Concept: Drift', category: 'Concept', size: 'wide' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove7\/600\/600',  title: 'Watch Render', category: 'Product', size: 'normal' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove8\/800\/1000', title: 'Cyber Alley', category: 'Environment', size: 'tall' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove9\/600\/600',  title: 'Creature Study', category: 'Character', size: 'normal' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove10\/600\/600', title: 'Headphone Proto', category: 'Product', size: 'normal' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove11\/1200\/600', title: 'Matte Painting', category: 'Concept', size: 'wide' },<!-- [et_pb_line_break_holder] -->  { src: 'https:\/\/picsum.photos\/seed\/grove12\/600\/600', title: 'Ancient Ruins', category: 'Environment', size: 'normal' }<!-- [et_pb_line_break_holder] -->];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   THREE.JS SETUP<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const container = document.getElementById('canvas-container');<!-- [et_pb_line_break_holder] -->const scene = new THREE.Scene();<!-- [et_pb_line_break_holder] -->scene.fog = new THREE.Fog(0x070a07, 8, 25);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const camera = new THREE.PerspectiveCamera(40, window.innerWidth \/ window.innerHeight, 0.1, 100);<!-- [et_pb_line_break_holder] -->camera.position.set(0, 0, 4);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true, powerPreference: 'high-performance' });<!-- [et_pb_line_break_holder] -->renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));<!-- [et_pb_line_break_holder] -->renderer.setSize(window.innerWidth, window.innerHeight);<!-- [et_pb_line_break_holder] -->renderer.toneMapping = THREE.ACESFilmicToneMapping;<!-- [et_pb_line_break_holder] -->renderer.toneMappingExposure = 1.1;<!-- [et_pb_line_break_holder] -->renderer.outputColorSpace = THREE.SRGBColorSpace;<!-- [et_pb_line_break_holder] -->renderer.shadowMap.enabled = true;<!-- [et_pb_line_break_holder] -->renderer.shadowMap.type = THREE.PCFSoftShadowMap;<!-- [et_pb_line_break_holder] -->container.appendChild(renderer.domElement);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const pmrem = new THREE.PMREMGenerator(renderer);<!-- [et_pb_line_break_holder] -->scene.environment = pmrem.fromScene(new RoomEnvironment(), 0.04).texture;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->scene.add(new THREE.AmbientLight(0xffffff, 0.3));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const keyLight = new THREE.DirectionalLight(0xffffff, 2.5);<!-- [et_pb_line_break_holder] -->keyLight.position.set(5, 8, 5);<!-- [et_pb_line_break_holder] -->keyLight.castShadow = true;<!-- [et_pb_line_break_holder] -->keyLight.shadow.mapSize.set(2048, 2048);<!-- [et_pb_line_break_holder] -->keyLight.shadow.camera.near = 0.1;<!-- [et_pb_line_break_holder] -->keyLight.shadow.camera.far = 30;<!-- [et_pb_line_break_holder] -->keyLight.shadow.camera.left = -5;<!-- [et_pb_line_break_holder] -->keyLight.shadow.camera.right = 5;<!-- [et_pb_line_break_holder] -->keyLight.shadow.camera.top = 5;<!-- [et_pb_line_break_holder] -->keyLight.shadow.camera.bottom = -5;<!-- [et_pb_line_break_holder] -->keyLight.shadow.bias = -0.0005;<!-- [et_pb_line_break_holder] -->scene.add(keyLight);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const rimLight = new THREE.DirectionalLight(0x4ade80, 1.5);<!-- [et_pb_line_break_holder] -->rimLight.position.set(-5, 3, -3);<!-- [et_pb_line_break_holder] -->scene.add(rimLight);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const fillLight = new THREE.DirectionalLight(0xa3e635, 0.6);<!-- [et_pb_line_break_holder] -->fillLight.position.set(0, -2, -5);<!-- [et_pb_line_break_holder] -->scene.add(fillLight);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const grid = new THREE.GridHelper(20, 40, 0x1a2f1a, 0x0f1a0f);<!-- [et_pb_line_break_holder] -->grid.position.y = -1.2;<!-- [et_pb_line_break_holder] -->grid.material.opacity = 0.4;<!-- [et_pb_line_break_holder] -->grid.material.transparent = true;<!-- [et_pb_line_break_holder] -->scene.add(grid);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const ground = new THREE.Mesh(<!-- [et_pb_line_break_holder] -->  new THREE.CircleGeometry(8, 64),<!-- [et_pb_line_break_holder] -->  new THREE.ShadowMaterial({ opacity: 0.35 })<!-- [et_pb_line_break_holder] -->);<!-- [et_pb_line_break_holder] -->ground.rotation.x = -Math.PI \/ 2;<!-- [et_pb_line_break_holder] -->ground.position.y = -1.2;<!-- [et_pb_line_break_holder] -->ground.receiveShadow = true;<!-- [et_pb_line_break_holder] -->scene.add(ground);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const controls = new OrbitControls(camera, renderer.domElement);<!-- [et_pb_line_break_holder] -->controls.enableDamping = true;<!-- [et_pb_line_break_holder] -->controls.dampingFactor = 0.08;<!-- [et_pb_line_break_holder] -->controls.enablePan = false;<!-- [et_pb_line_break_holder] -->controls.minDistance = 1.5;<!-- [et_pb_line_break_holder] -->controls.maxDistance = 12;<!-- [et_pb_line_break_holder] -->controls.autoRotate = true;<!-- [et_pb_line_break_holder] -->controls.autoRotateSpeed = 0.4;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const composer = new EffectComposer(renderer);<!-- [et_pb_line_break_holder] -->composer.addPass(new RenderPass(scene, camera));<!-- [et_pb_line_break_holder] -->composer.addPass(new UnrealBloomPass(<!-- [et_pb_line_break_holder] -->  new THREE.Vector2(window.innerWidth, window.innerHeight),<!-- [et_pb_line_break_holder] -->  0.35, 0.6, 0.85<!-- [et_pb_line_break_holder] -->));<!-- [et_pb_line_break_holder] -->composer.addPass(new OutputPass());<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   MODEL LOADING + ANIMATION<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const loader = new GLTFLoader();<!-- [et_pb_line_break_holder] -->const dracoLoader = new DRACOLoader();<!-- [et_pb_line_break_holder] -->dracoLoader.setDecoderPath('https:\/\/unpkg.com\/three@0.160.0\/examples\/jsm\/libs\/draco\/');<!-- [et_pb_line_break_holder] -->loader.setDRACOLoader(dracoLoader);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->let currentModel = null;<!-- [et_pb_line_break_holder] -->let currentIndex = 0;<!-- [et_pb_line_break_holder] -->let targetCameraPos = new THREE.Vector3();<!-- [et_pb_line_break_holder] -->let targetLookAt = new THREE.Vector3();<!-- [et_pb_line_break_holder] -->let targetRotation = new THREE.Euler(0, 0, 0);<!-- [et_pb_line_break_holder] -->let isTransitioning = false;<!-- [et_pb_line_break_holder] -->let mixer = null;<!-- [et_pb_line_break_holder] -->let currentAction = null;<!-- [et_pb_line_break_holder] -->let explodeState = { active: false, amount: 0, target: 0 };<!-- [et_pb_line_break_holder] -->let activeHighlight = null;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function countStats(gltf) {<!-- [et_pb_line_break_holder] -->  let triangles = 0, materials = new Set(), textures = new Set();<!-- [et_pb_line_break_holder] -->  gltf.scene.traverse((obj) => {<!-- [et_pb_line_break_holder] -->    if (obj.isMesh) {<!-- [et_pb_line_break_holder] -->      const g = obj.geometry;<!-- [et_pb_line_break_holder] -->      triangles += g.index ? g.index.count \/ 3 : g.attributes.position.count \/ 3;<!-- [et_pb_line_break_holder] -->      if (obj.material) {<!-- [et_pb_line_break_holder] -->        const mats = Array.isArray(obj.material) ? obj.material : [obj.material];<!-- [et_pb_line_break_holder] -->        mats.forEach(m => {<!-- [et_pb_line_break_holder] -->          materials.add(m.uuid);<!-- [et_pb_line_break_holder] -->          Object.values(m).forEach(v => { if (v && v.isTexture) textures.add(v.uuid); });<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  return {<!-- [et_pb_line_break_holder] -->    triangles: Math.round(triangles).toLocaleString(),<!-- [et_pb_line_break_holder] -->    materials: materials.size,<!-- [et_pb_line_break_holder] -->    textures: textures.size<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function fitModelToView(object) {<!-- [et_pb_line_break_holder] -->  const box = new THREE.Box3().setFromObject(object);<!-- [et_pb_line_break_holder] -->  const size = box.getSize(new THREE.Vector3());<!-- [et_pb_line_break_holder] -->  const center = box.getCenter(new THREE.Vector3());<!-- [et_pb_line_break_holder] -->  const maxDim = Math.max(size.x, size.y, size.z);<!-- [et_pb_line_break_holder] -->  const scale = 2 \/ maxDim;<!-- [et_pb_line_break_holder] -->  object.scale.setScalar(scale);<!-- [et_pb_line_break_holder] -->  box.setFromObject(object);<!-- [et_pb_line_break_holder] -->  box.getCenter(center);<!-- [et_pb_line_break_holder] -->  object.position.sub(center);<!-- [et_pb_line_break_holder] -->  object.traverse(o => {<!-- [et_pb_line_break_holder] -->    if (o.isMesh) { o.castShadow = true; o.receiveShadow = true; }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function storeOriginalPositions(object) {<!-- [et_pb_line_break_holder] -->  object.traverse(o => {<!-- [et_pb_line_break_holder] -->    if (o.isMesh) {<!-- [et_pb_line_break_holder] -->      o.userData.originalPosition = o.position.clone();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function loadModel(index) {<!-- [et_pb_line_break_holder] -->  if (isTransitioning) return;<!-- [et_pb_line_break_holder] -->  const model = MODELS[index];<!-- [et_pb_line_break_holder] -->  isTransitioning = true;<!-- [et_pb_line_break_holder] -->  const fade = document.getElementById('fade');<!-- [et_pb_line_break_holder] -->  fade.classList.add('active');<!-- [et_pb_line_break_holder] -->  clearCallouts();<!-- [et_pb_line_break_holder] -->  hideResetButton();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  setTimeout(() => {<!-- [et_pb_line_break_holder] -->    if (currentModel) {<!-- [et_pb_line_break_holder] -->      scene.remove(currentModel);<!-- [et_pb_line_break_holder] -->      currentModel.traverse(o => {<!-- [et_pb_line_break_holder] -->        if (o.geometry) o.geometry.dispose();<!-- [et_pb_line_break_holder] -->        if (o.material) {<!-- [et_pb_line_break_holder] -->          const mats = Array.isArray(o.material) ? o.material : [o.material];<!-- [et_pb_line_break_holder] -->          mats.forEach(m => {<!-- [et_pb_line_break_holder] -->            Object.values(m).forEach(v => { if (v && v.isTexture) v.dispose(); });<!-- [et_pb_line_break_holder] -->            m.dispose();<!-- [et_pb_line_break_holder] -->          });<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (mixer) { mixer.stopAllAction(); mixer = null; }<!-- [et_pb_line_break_holder] -->    currentAction = null;<!-- [et_pb_line_break_holder] -->    explodeState = { active: false, amount: 0, target: 0 };<!-- [et_pb_line_break_holder] -->    activeHighlight = null;<!-- [et_pb_line_break_holder] -->    targetRotation = new THREE.Euler(0, 0, 0);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    loader.load(<!-- [et_pb_line_break_holder] -->      model.url,<!-- [et_pb_line_break_holder] -->      (gltf) => {<!-- [et_pb_line_break_holder] -->        const obj = gltf.scene;<!-- [et_pb_line_break_holder] -->        fitModelToView(obj);<!-- [et_pb_line_break_holder] -->        storeOriginalPositions(obj);<!-- [et_pb_line_break_holder] -->        scene.add(obj);<!-- [et_pb_line_break_holder] -->        currentModel = obj;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        if (gltf.animations && gltf.animations.length > 0) {<!-- [et_pb_line_break_holder] -->          mixer = new THREE.AnimationMixer(obj);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        document.getElementById('title').textContent = model.name;<!-- [et_pb_line_break_holder] -->        document.getElementById('desc').textContent = model.description;<!-- [et_pb_line_break_holder] -->        document.getElementById('tag').textContent = model.category;<!-- [et_pb_line_break_holder] -->        const stats = countStats(gltf);<!-- [et_pb_line_break_holder] -->        document.getElementById('stat1').textContent = stats.triangles;<!-- [et_pb_line_break_holder] -->        document.getElementById('stat2').textContent = stats.materials;<!-- [et_pb_line_break_holder] -->        document.getElementById('stat3').textContent = stats.textures;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        targetCameraPos.fromArray(model.camera.position);<!-- [et_pb_line_break_holder] -->        targetLookAt.fromArray(model.camera.target);<!-- [et_pb_line_break_holder] -->        controls.autoRotateSpeed = model.autoRotateSpeed;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        updateModelSelection(index);<!-- [et_pb_line_break_holder] -->        currentIndex = index;<!-- [et_pb_line_break_holder] -->        isTransitioning = false;<!-- [et_pb_line_break_holder] -->        fade.classList.remove('active');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        if (model.callouts && model.callouts.length > 0) {<!-- [et_pb_line_break_holder] -->          createCallouts(model.callouts);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      },<!-- [et_pb_line_break_holder] -->      undefined,<!-- [et_pb_line_break_holder] -->      (err) => {<!-- [et_pb_line_break_holder] -->        console.error('Load error:', err);<!-- [et_pb_line_break_holder] -->        document.getElementById('title').textContent = 'Load Error';<!-- [et_pb_line_break_holder] -->        document.getElementById('desc').textContent = 'Could not load model.';<!-- [et_pb_line_break_holder] -->        isTransitioning = false;<!-- [et_pb_line_break_holder] -->        fade.classList.remove('active');<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    );<!-- [et_pb_line_break_holder] -->  }, 300);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function updateModelSelection(index) {<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('.model-card').forEach((c, i) => c.classList.toggle('active', i === index));<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('.drawer-model').forEach((c, i) => c.classList.toggle('active', i === index));<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('.strip-card').forEach((c, i) => c.classList.toggle('active', i === index));<!-- [et_pb_line_break_holder] -->  const activeStrip = document.querySelector('.strip-card.active');<!-- [et_pb_line_break_holder] -->  if (activeStrip) {<!-- [et_pb_line_break_holder] -->    activeStrip.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   CALLOUT SYSTEM<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const calloutsLayer = document.getElementById('callouts-layer');<!-- [et_pb_line_break_holder] -->const calloutsResetBtn = document.getElementById('callouts-reset');<!-- [et_pb_line_break_holder] -->let activeCalloutElements = [];<!-- [et_pb_line_break_holder] -->let activeCalloutIndex = -1;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function createCallouts(callouts) {<!-- [et_pb_line_break_holder] -->  callouts.forEach((c, i) => {<!-- [et_pb_line_break_holder] -->    const el = document.createElement('div');<!-- [et_pb_line_break_holder] -->    el.className = 'callout hidden';<!-- [et_pb_line_break_holder] -->    el.innerHTML = `<!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"callout-dot\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"callout-label\"><!-- [et_pb_line_break_holder] -->        ${c.label}<!-- [et_pb_line_break_holder] -->        ${c.subtitle ? `<small>${c.subtitle}<\/small>` : ''}<!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    `;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', (e) => {<!-- [et_pb_line_break_holder] -->      e.stopPropagation();<!-- [et_pb_line_break_holder] -->      triggerCallout(i);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    calloutsLayer.appendChild(el);<!-- [et_pb_line_break_holder] -->    activeCalloutElements.push({<!-- [et_pb_line_break_holder] -->      el,<!-- [et_pb_line_break_holder] -->      position: new THREE.Vector3(...c.position),<!-- [et_pb_line_break_holder] -->      config: c,<!-- [et_pb_line_break_holder] -->      index: i<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function clearCallouts() {<!-- [et_pb_line_break_holder] -->  activeCalloutElements.forEach(c => c.el.remove());<!-- [et_pb_line_break_holder] -->  activeCalloutElements = [];<!-- [et_pb_line_break_holder] -->  activeCalloutIndex = -1;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function updateCallouts() {<!-- [et_pb_line_break_holder] -->  if (!currentModel || activeCalloutElements.length === 0) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const width = window.innerWidth;<!-- [et_pb_line_break_holder] -->  const height = window.innerHeight;<!-- [et_pb_line_break_holder] -->  const vec = new THREE.Vector3();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  activeCalloutElements.forEach(c => {<!-- [et_pb_line_break_holder] -->    vec.copy(c.position);<!-- [et_pb_line_break_holder] -->    currentModel.localToWorld(vec);<!-- [et_pb_line_break_holder] -->    vec.project(camera);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const behindCamera = vec.z > 1;<!-- [et_pb_line_break_holder] -->    const offscreen = Math.abs(vec.x) > 1.1 || Math.abs(vec.y) > 1.1;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (behindCamera || offscreen) {<!-- [et_pb_line_break_holder] -->      c.el.classList.add('hidden');<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const x = (vec.x * 0.5 + 0.5) * width;<!-- [et_pb_line_break_holder] -->    const y = (-vec.y * 0.5 + 0.5) * height;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    c.el.classList.remove('hidden');<!-- [et_pb_line_break_holder] -->    c.el.style.transform = `translate(${x}px, ${y}px) translate(-50%, -50%)`;<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function triggerCallout(index) {<!-- [et_pb_line_break_holder] -->  const callout = activeCalloutElements[index];<!-- [et_pb_line_break_holder] -->  if (!callout) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const anim = callout.config.animation;<!-- [et_pb_line_break_holder] -->  if (!anim) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  activeCalloutElements.forEach(c => c.el.classList.remove('active'));<!-- [et_pb_line_break_holder] -->  callout.el.classList.add('active');<!-- [et_pb_line_break_holder] -->  activeCalloutIndex = index;<!-- [et_pb_line_break_holder] -->  showResetButton();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  switch (anim.type) {<!-- [et_pb_line_break_holder] -->    case 'camera':<!-- [et_pb_line_break_holder] -->      targetCameraPos.fromArray(anim.position);<!-- [et_pb_line_break_holder] -->      targetLookAt.fromArray(anim.target);<!-- [et_pb_line_break_holder] -->      controls.autoRotate = false;<!-- [et_pb_line_break_holder] -->      document.getElementById('btn-rotate').classList.remove('active');<!-- [et_pb_line_break_holder] -->      break;<!-- [et_pb_line_break_holder] -->    case 'rotate':<!-- [et_pb_line_break_holder] -->      targetRotation.set(anim.euler[0], anim.euler[1], anim.euler[2]);<!-- [et_pb_line_break_holder] -->      controls.autoRotate = false;<!-- [et_pb_line_break_holder] -->      document.getElementById('btn-rotate').classList.remove('active');<!-- [et_pb_line_break_holder] -->      break;<!-- [et_pb_line_break_holder] -->    case 'highlight':<!-- [et_pb_line_break_holder] -->      triggerHighlight(anim.mesh, anim.color);<!-- [et_pb_line_break_holder] -->      break;<!-- [et_pb_line_break_holder] -->    case 'clip':<!-- [et_pb_line_break_holder] -->      triggerClip(anim.name, anim.loop !== false);<!-- [et_pb_line_break_holder] -->      break;<!-- [et_pb_line_break_holder] -->    case 'explode':<!-- [et_pb_line_break_holder] -->      triggerExplode(anim.amount);<!-- [et_pb_line_break_holder] -->      break;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function triggerHighlight(meshName, color) {<!-- [et_pb_line_break_holder] -->  if (activeHighlight) {<!-- [et_pb_line_break_holder] -->    activeHighlight.mesh.material.emissive.copy(activeHighlight.originalEmissive);<!-- [et_pb_line_break_holder] -->    activeHighlight.mesh.material.emissiveIntensity = 0;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let targetMesh = null;<!-- [et_pb_line_break_holder] -->  currentModel.traverse(o => {<!-- [et_pb_line_break_holder] -->    if (o.isMesh && o.name === meshName) targetMesh = o;<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (!targetMesh) {<!-- [et_pb_line_break_holder] -->    currentModel.traverse(o => {<!-- [et_pb_line_break_holder] -->      if (o.isMesh && !targetMesh) targetMesh = o;<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (targetMesh && targetMesh.material) {<!-- [et_pb_line_break_holder] -->    const mat = targetMesh.material;<!-- [et_pb_line_break_holder] -->    activeHighlight = {<!-- [et_pb_line_break_holder] -->      mesh: targetMesh,<!-- [et_pb_line_break_holder] -->      originalEmissive: mat.emissive.clone(),<!-- [et_pb_line_break_holder] -->      targetColor: new THREE.Color(color),<!-- [et_pb_line_break_holder] -->      startTime: performance.now(),<!-- [et_pb_line_break_holder] -->      duration: 1500<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function updateHighlight() {<!-- [et_pb_line_break_holder] -->  if (!activeHighlight) return;<!-- [et_pb_line_break_holder] -->  const elapsed = performance.now() - activeHighlight.startTime;<!-- [et_pb_line_break_holder] -->  const t = elapsed \/ activeHighlight.duration;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (t >= 1) {<!-- [et_pb_line_break_holder] -->    activeHighlight.mesh.material.emissive.copy(activeHighlight.originalEmissive);<!-- [et_pb_line_break_holder] -->    activeHighlight.mesh.material.emissiveIntensity = 0;<!-- [et_pb_line_break_holder] -->    activeHighlight = null;<!-- [et_pb_line_break_holder] -->    return;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const pulse = Math.sin(t * Math.PI);<!-- [et_pb_line_break_holder] -->  activeHighlight.mesh.material.emissive.copy(activeHighlight.targetColor);<!-- [et_pb_line_break_holder] -->  activeHighlight.mesh.material.emissiveIntensity = pulse * 0.8;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function triggerClip(clipName, loop) {<!-- [et_pb_line_break_holder] -->  if (!mixer) {<!-- [et_pb_line_break_holder] -->    console.warn('No animations in this model');<!-- [et_pb_line_break_holder] -->    return;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const clip = THREE.AnimationClip.findByName(mixer.clips, clipName);<!-- [et_pb_line_break_holder] -->  if (!clip) {<!-- [et_pb_line_break_holder] -->    console.warn(`Clip \"${clipName}\" not found. Available:`, mixer.clips.map(c => c.name));<!-- [et_pb_line_break_holder] -->    return;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (currentAction) currentAction.stop();<!-- [et_pb_line_break_holder] -->  currentAction = mixer.clipAction(clip);<!-- [et_pb_line_break_holder] -->  currentAction.reset();<!-- [et_pb_line_break_holder] -->  currentAction.setLoop(loop ? THREE.LoopRepeat : THREE.LoopOnce, loop ? Infinity : 1);<!-- [et_pb_line_break_holder] -->  currentAction.clampWhenFinished = !loop;<!-- [et_pb_line_break_holder] -->  currentAction.play();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function triggerExplode(amount) {<!-- [et_pb_line_break_holder] -->  if (explodeState.active && explodeState.target === amount) {<!-- [et_pb_line_break_holder] -->    explodeState.target = 0;<!-- [et_pb_line_break_holder] -->    if (explodeState.amount === 0) explodeState.active = false;<!-- [et_pb_line_break_holder] -->    return;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  explodeState.active = true;<!-- [et_pb_line_break_holder] -->  explodeState.target = amount;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function updateExplode() {<!-- [et_pb_line_break_holder] -->  if (!explodeState.active || !currentModel) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const diff = explodeState.target - explodeState.amount;<!-- [et_pb_line_break_holder] -->  if (Math.abs(diff) < 0.001) {<!-- [et_pb_line_break_holder] -->    explodeState.amount = explodeState.target;<!-- [et_pb_line_break_holder] -->    if (explodeState.target === 0) explodeState.active = false;<!-- [et_pb_line_break_holder] -->  } else {<!-- [et_pb_line_break_holder] -->    explodeState.amount += diff * 0.08;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  currentModel.traverse(o => {<!-- [et_pb_line_break_holder] -->    if (o.isMesh && o.userData.originalPosition) {<!-- [et_pb_line_break_holder] -->      const orig = o.userData.originalPosition;<!-- [et_pb_line_break_holder] -->      const dir = orig.clone().normalize();<!-- [et_pb_line_break_holder] -->      if (dir.length() < 0.01) dir.set(0, 1, 0);<!-- [et_pb_line_break_holder] -->      o.position.copy(orig).addScaledVector(dir, explodeState.amount);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function showResetButton() { calloutsResetBtn.classList.add('visible'); }<!-- [et_pb_line_break_holder] -->function hideResetButton() { calloutsResetBtn.classList.remove('visible'); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->calloutsResetBtn.addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  const model = MODELS[currentIndex];<!-- [et_pb_line_break_holder] -->  targetCameraPos.fromArray(model.camera.position);<!-- [et_pb_line_break_holder] -->  targetLookAt.fromArray(model.camera.target);<!-- [et_pb_line_break_holder] -->  targetRotation.set(0, 0, 0);<!-- [et_pb_line_break_holder] -->  controls.autoRotate = true;<!-- [et_pb_line_break_holder] -->  document.getElementById('btn-rotate').classList.add('active');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (explodeState.active || explodeState.amount > 0) {<!-- [et_pb_line_break_holder] -->    explodeState.target = 0;<!-- [et_pb_line_break_holder] -->    explodeState.active = true;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (activeHighlight) {<!-- [et_pb_line_break_holder] -->    activeHighlight.mesh.material.emissive.copy(activeHighlight.originalEmissive);<!-- [et_pb_line_break_holder] -->    activeHighlight.mesh.material.emissiveIntensity = 0;<!-- [et_pb_line_break_holder] -->    activeHighlight = null;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (currentAction) {<!-- [et_pb_line_break_holder] -->    currentAction.stop();<!-- [et_pb_line_break_holder] -->    currentAction = null;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  activeCalloutElements.forEach(c => c.el.classList.remove('active'));<!-- [et_pb_line_break_holder] -->  activeCalloutIndex = -1;<!-- [et_pb_line_break_holder] -->  hideResetButton();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   UI: Model pickers<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const pickerList = document.getElementById('picker-list');<!-- [et_pb_line_break_holder] -->const drawerModels = document.getElementById('drawer-models');<!-- [et_pb_line_break_holder] -->const mobileStripInner = document.getElementById('mobile-strip-inner');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->MODELS.forEach((m, i) => {<!-- [et_pb_line_break_holder] -->  const card = document.createElement('div');<!-- [et_pb_line_break_holder] -->  card.className = 'model-card' + (i === 0 ? ' active' : '');<!-- [et_pb_line_break_holder] -->  card.innerHTML = `<!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"model-thumb\">${m.thumbnail}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"model-name\">${m.name}<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"model-cat\">${m.category}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  `;<!-- [et_pb_line_break_holder] -->  card.addEventListener('click', () => loadModel(i));<!-- [et_pb_line_break_holder] -->  pickerList.appendChild(card);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const dm = document.createElement('div');<!-- [et_pb_line_break_holder] -->  dm.className = 'drawer-model' + (i === 0 ? ' active' : '');<!-- [et_pb_line_break_holder] -->  dm.innerHTML = `<!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"drawer-model-thumb\">${m.thumbnail}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"drawer-model-name\">${m.name}<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"drawer-model-cat\">${m.category}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  `;<!-- [et_pb_line_break_holder] -->  dm.addEventListener('click', () => { loadModel(i); closeDrawer(); });<!-- [et_pb_line_break_holder] -->  drawerModels.appendChild(dm);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const sc = document.createElement('div');<!-- [et_pb_line_break_holder] -->  sc.className = 'strip-card' + (i === 0 ? ' active' : '');<!-- [et_pb_line_break_holder] -->  sc.innerHTML = `<!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"strip-thumb\">${m.thumbnail}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"strip-name\">${m.name}<\/div>\n<p><!-- [et_pb_line_break_holder] -->  `;<!-- [et_pb_line_break_holder] -->  sc.addEventListener('click', () => loadModel(i));<!-- [et_pb_line_break_holder] -->  mobileStripInner.appendChild(sc);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.getElementById('btn-prev').addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  loadModel((currentIndex - 1 + MODELS.length) % MODELS.length);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] -->document.getElementById('btn-next').addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  loadModel((currentIndex + 1) % MODELS.length);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] -->document.getElementById('btn-rotate').addEventListener('click', (e) => {<!-- [et_pb_line_break_holder] -->  controls.autoRotate = !controls.autoRotate;<!-- [et_pb_line_break_holder] -->  e.currentTarget.classList.toggle('active', controls.autoRotate);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] -->document.getElementById('btn-reset').addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  calloutsResetBtn.click();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   HAMBURGER DRAWER<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const hamburger = document.getElementById('hamburger');<!-- [et_pb_line_break_holder] -->const drawer = document.getElementById('drawer');<!-- [et_pb_line_break_holder] -->const drawerBackdrop = document.getElementById('drawer-backdrop');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function openDrawer() {<!-- [et_pb_line_break_holder] -->  drawer.classList.add('open');<!-- [et_pb_line_break_holder] -->  drawerBackdrop.classList.add('open');<!-- [et_pb_line_break_holder] -->  hamburger.classList.add('open');<!-- [et_pb_line_break_holder] -->  drawer.setAttribute('aria-hidden', 'false');<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->function closeDrawer() {<!-- [et_pb_line_break_holder] -->  drawer.classList.remove('open');<!-- [et_pb_line_break_holder] -->  drawerBackdrop.classList.remove('open');<!-- [et_pb_line_break_holder] -->  hamburger.classList.remove('open');<!-- [et_pb_line_break_holder] -->  drawer.setAttribute('aria-hidden', 'true');<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->hamburger.addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  if (drawer.classList.contains('open')) closeDrawer();<!-- [et_pb_line_break_holder] -->  else openDrawer();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] -->drawerBackdrop.addEventListener('click', closeDrawer);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   SECTIONS<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const sections = {<!-- [et_pb_line_break_holder] -->  services: document.getElementById('section-services'),<!-- [et_pb_line_break_holder] -->  gallery: document.getElementById('section-gallery'),<!-- [et_pb_line_break_holder] -->  contact: document.getElementById('section-contact')<!-- [et_pb_line_break_holder] -->};<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function openSection(name) {<!-- [et_pb_line_break_holder] -->  Object.values(sections).forEach(s => s.classList.remove('active'));<!-- [et_pb_line_break_holder] -->  document.querySelectorAll('.nav a, .drawer a').forEach(a => a.classList.remove('active'));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (name === 'home' || !sections[name]) {<!-- [et_pb_line_break_holder] -->    document.body.classList.remove('section-open');<!-- [et_pb_line_break_holder] -->    document.querySelectorAll('.nav a[data-section=\"home\"], .drawer a[data-section=\"home\"]').forEach(a => a.classList.add('active'));<!-- [et_pb_line_break_holder] -->    closeDrawer();<!-- [et_pb_line_break_holder] -->    return;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  sections[name].classList.add('active');<!-- [et_pb_line_break_holder] -->  document.body.classList.add('section-open');<!-- [et_pb_line_break_holder] -->  document.querySelectorAll(`.nav a[data-section=\"${name}\"], .drawer a[data-section=\"${name}\"]`).forEach(a => a.classList.add('active'));<!-- [et_pb_line_break_holder] -->  closeDrawer();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function closeSections() { openSection('home'); }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.querySelectorAll('[data-section]').forEach(el => {<!-- [et_pb_line_break_holder] -->  el.addEventListener('click', (e) => {<!-- [et_pb_line_break_holder] -->    e.preventDefault();<!-- [et_pb_line_break_holder] -->    openSection(el.dataset.section);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.querySelectorAll('[data-close]').forEach(btn => {<!-- [et_pb_line_break_holder] -->  btn.addEventListener('click', closeSections);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   SWIPE + KEYBOARD<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->let touchStartX = 0, touchStartY = 0, touchStartTime = 0;<!-- [et_pb_line_break_holder] -->renderer.domElement.addEventListener('touchstart', (e) => {<!-- [et_pb_line_break_holder] -->  if (e.touches.length !== 1) return;<!-- [et_pb_line_break_holder] -->  touchStartX = e.touches[0].clientX;<!-- [et_pb_line_break_holder] -->  touchStartY = e.touches[0].clientY;<!-- [et_pb_line_break_holder] -->  touchStartTime = Date.now();<!-- [et_pb_line_break_holder] -->}, { passive: true });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->renderer.domElement.addEventListener('touchend', (e) => {<!-- [et_pb_line_break_holder] -->  if (e.changedTouches.length !== 1) return;<!-- [et_pb_line_break_holder] -->  const dx = e.changedTouches[0].clientX - touchStartX;<!-- [et_pb_line_break_holder] -->  const dy = e.changedTouches[0].clientY - touchStartY;<!-- [et_pb_line_break_holder] -->  const dt = Date.now() - touchStartTime;<!-- [et_pb_line_break_holder] -->  if (Math.abs(dx) > 60 && Math.abs(dx) > Math.abs(dy) * 1.5 && dt < 500) {<!-- [et_pb_line_break_holder] -->    if (dx > 0) document.getElementById('btn-prev').click();<!-- [et_pb_line_break_holder] -->    else document.getElementById('btn-next').click();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}, { passive: true });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const swipeHint = document.getElementById('swipe-hint');<!-- [et_pb_line_break_holder] -->if ('ontouchstart' in window) {<!-- [et_pb_line_break_holder] -->  setTimeout(() => {<!-- [et_pb_line_break_holder] -->    swipeHint.classList.add('show');<!-- [et_pb_line_break_holder] -->    setTimeout(() => swipeHint.classList.remove('show'), 3500);<!-- [et_pb_line_break_holder] -->  }, 2500);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->window.addEventListener('keydown', (e) => {<!-- [et_pb_line_break_holder] -->  if (e.key === 'Escape') {<!-- [et_pb_line_break_holder] -->    if (document.getElementById('lightbox').classList.contains('active')) closeLightbox();<!-- [et_pb_line_break_holder] -->    else if (drawer.classList.contains('open')) closeDrawer();<!-- [et_pb_line_break_holder] -->    else if (calloutsResetBtn.classList.contains('visible')) calloutsResetBtn.click();<!-- [et_pb_line_break_holder] -->    else closeSections();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  if (e.key === 'ArrowLeft') document.getElementById('btn-prev').click();<!-- [et_pb_line_break_holder] -->  if (e.key === 'ArrowRight') document.getElementById('btn-next').click();<!-- [et_pb_line_break_holder] -->  if (e.key === 'r' || e.key === 'R') document.getElementById('btn-reset').click();<!-- [et_pb_line_break_holder] -->  if (e.key === ' ') { e.preventDefault(); document.getElementById('btn-rotate').click(); }<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   SERVICES + GALLERY + CONTACT<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->const servicesGrid = document.getElementById('services-grid');<!-- [et_pb_line_break_holder] -->SERVICES.forEach(s => {<!-- [et_pb_line_break_holder] -->  const card = document.createElement('div');<!-- [et_pb_line_break_holder] -->  card.className = 'service-card';<!-- [et_pb_line_break_holder] -->  card.innerHTML = `<!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"service-icon\">${s.icon}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"service-name\">${s.name}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"service-desc\">${s.description}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<ul class=\"service-features\"><!-- [et_pb_line_break_holder] -->      ${s.features.map(f => `<\/p>\n<li>${f}<\/li>\n<p>`).join('')}<!-- [et_pb_line_break_holder] -->    <\/ul>\n<p><!-- [et_pb_line_break_holder] -->  `;<!-- [et_pb_line_break_holder] -->  servicesGrid.appendChild(card);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const categories = ['All', ...new Set(GALLERY.map(g => g.category))];<!-- [et_pb_line_break_holder] -->const filtersEl = document.getElementById('gallery-filters');<!-- [et_pb_line_break_holder] -->const galleryGrid = document.getElementById('gallery-grid');<!-- [et_pb_line_break_holder] -->let currentFilter = 'All';<!-- [et_pb_line_break_holder] -->let filteredItems = [...GALLERY];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->categories.forEach((cat, i) => {<!-- [et_pb_line_break_holder] -->  const btn = document.createElement('button');<!-- [et_pb_line_break_holder] -->  btn.className = 'filter-btn' + (i === 0 ? ' active' : '');<!-- [et_pb_line_break_holder] -->  btn.textContent = cat;<!-- [et_pb_line_break_holder] -->  btn.addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->    currentFilter = cat;<!-- [et_pb_line_break_holder] -->    document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active'));<!-- [et_pb_line_break_holder] -->    btn.classList.add('active');<!-- [et_pb_line_break_holder] -->    renderGallery();<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->  filtersEl.appendChild(btn);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function renderGallery() {<!-- [et_pb_line_break_holder] -->  galleryGrid.innerHTML = '';<!-- [et_pb_line_break_holder] -->  filteredItems = currentFilter === 'All' ? [...GALLERY] : GALLERY.filter(g => g.category === currentFilter);<!-- [et_pb_line_break_holder] -->  filteredItems.forEach((item, i) => {<!-- [et_pb_line_break_holder] -->    const el = document.createElement('div');<!-- [et_pb_line_break_holder] -->    el.className = 'gallery-item';<!-- [et_pb_line_break_holder] -->    if (item.size === 'tall') el.classList.add('tall');<!-- [et_pb_line_break_holder] -->    if (item.size === 'wide') el.classList.add('wide');<!-- [et_pb_line_break_holder] -->    el.innerHTML = `<!-- [et_pb_line_break_holder] -->      <img decoding=\"async\" src=\"${item.src}\" alt=\"${item.title}\" loading=\"lazy\" \/><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"gallery-overlay\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gallery-item-title\">${item.title}<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"gallery-item-cat\">${item.category}<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    `;<!-- [et_pb_line_break_holder] -->    el.addEventListener('click', () => openLightbox(i));<!-- [et_pb_line_break_holder] -->    galleryGrid.appendChild(el);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->renderGallery();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const lightbox = document.getElementById('lightbox');<!-- [et_pb_line_break_holder] -->const lightboxImg = document.getElementById('lightbox-img');<!-- [et_pb_line_break_holder] -->const lightboxTitle = document.getElementById('lightbox-title');<!-- [et_pb_line_break_holder] -->const lightboxCat = document.getElementById('lightbox-cat');<!-- [et_pb_line_break_holder] -->let lightboxIndex = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function openLightbox(i) {<!-- [et_pb_line_break_holder] -->  lightboxIndex = i;<!-- [et_pb_line_break_holder] -->  updateLightbox();<!-- [et_pb_line_break_holder] -->  lightbox.classList.add('active');<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->function closeLightbox() { lightbox.classList.remove('active'); }<!-- [et_pb_line_break_holder] -->function updateLightbox() {<!-- [et_pb_line_break_holder] -->  const item = filteredItems[lightboxIndex];<!-- [et_pb_line_break_holder] -->  lightboxImg.src = item.src;<!-- [et_pb_line_break_holder] -->  lightboxImg.alt = item.title;<!-- [et_pb_line_break_holder] -->  lightboxTitle.textContent = item.title;<!-- [et_pb_line_break_holder] -->  lightboxCat.textContent = item.category;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->document.getElementById('lightbox-close').addEventListener('click', closeLightbox);<!-- [et_pb_line_break_holder] -->lightbox.addEventListener('click', (e) => { if (e.target === lightbox) closeLightbox(); });<!-- [et_pb_line_break_holder] -->document.getElementById('lightbox-prev').addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  lightboxIndex = (lightboxIndex - 1 + filteredItems.length) % filteredItems.length;<!-- [et_pb_line_break_holder] -->  updateLightbox();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] -->document.getElementById('lightbox-next').addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->  lightboxIndex = (lightboxIndex + 1) % filteredItems.length;<!-- [et_pb_line_break_holder] -->  updateLightbox();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] -->window.addEventListener('keydown', (e) => {<!-- [et_pb_line_break_holder] -->  if (!lightbox.classList.contains('active')) return;<!-- [et_pb_line_break_holder] -->  if (e.key === 'ArrowLeft') document.getElementById('lightbox-prev').click();<!-- [et_pb_line_break_holder] -->  if (e.key === 'ArrowRight') document.getElementById('lightbox-next').click();<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->let lbTouchStartX = 0;<!-- [et_pb_line_break_holder] -->lightbox.addEventListener('touchstart', (e) => { lbTouchStartX = e.touches[0].clientX; }, { passive: true });<!-- [et_pb_line_break_holder] -->lightbox.addEventListener('touchend', (e) => {<!-- [et_pb_line_break_holder] -->  const dx = e.changedTouches[0].clientX - lbTouchStartX;<!-- [et_pb_line_break_holder] -->  if (Math.abs(dx) > 50) {<!-- [et_pb_line_break_holder] -->    if (dx > 0) document.getElementById('lightbox-prev').click();<!-- [et_pb_line_break_holder] -->    else document.getElementById('lightbox-next').click();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}, { passive: true });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->let selectedBudget = '';<!-- [et_pb_line_break_holder] -->document.querySelectorAll('.budget-chip').forEach(chip => {<!-- [et_pb_line_break_holder] -->  chip.addEventListener('click', () => {<!-- [et_pb_line_break_holder] -->    document.querySelectorAll('.budget-chip').forEach(c => c.classList.remove('active'));<!-- [et_pb_line_break_holder] -->    chip.classList.add('active');<!-- [et_pb_line_break_holder] -->    selectedBudget = chip.dataset.budget;<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.getElementById('contact-form').addEventListener('submit', (e) => {<!-- [et_pb_line_break_holder] -->  e.preventDefault();<!-- [et_pb_line_break_holder] -->  const btn = document.getElementById('submit-btn');<!-- [et_pb_line_break_holder] -->  const success = document.getElementById('form-success');<!-- [et_pb_line_break_holder] -->  const data = {<!-- [et_pb_line_break_holder] -->    name: document.getElementById('f-name').value,<!-- [et_pb_line_break_holder] -->    email: document.getElementById('f-email').value,<!-- [et_pb_line_break_holder] -->    type: document.getElementById('f-type').value,<!-- [et_pb_line_break_holder] -->    timeline: document.getElementById('f-timeline').value,<!-- [et_pb_line_break_holder] -->    budget: selectedBudget,<!-- [et_pb_line_break_holder] -->    message: document.getElementById('f-msg').value<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] -->  btn.disabled = true;<!-- [et_pb_line_break_holder] -->  btn.textContent = 'Sending...';<!-- [et_pb_line_break_holder] -->  \/* HOOK UP YOUR BACKEND HERE *\/<!-- [et_pb_line_break_holder] -->  setTimeout(() => {<!-- [et_pb_line_break_holder] -->    console.log('Form submission:', data);<!-- [et_pb_line_break_holder] -->    btn.textContent = 'Sent \u2713';<!-- [et_pb_line_break_holder] -->    success.classList.add('show');<!-- [et_pb_line_break_holder] -->    e.target.reset();<!-- [et_pb_line_break_holder] -->    document.querySelectorAll('.budget-chip').forEach(c => c.classList.remove('active'));<!-- [et_pb_line_break_holder] -->    selectedBudget = '';<!-- [et_pb_line_break_holder] -->    setTimeout(() => {<!-- [et_pb_line_break_holder] -->      btn.disabled = false;<!-- [et_pb_line_break_holder] -->      btn.textContent = 'Send Message \u2192';<!-- [et_pb_line_break_holder] -->      success.classList.remove('show');<!-- [et_pb_line_break_holder] -->    }, 4000);<!-- [et_pb_line_break_holder] -->  }, 900);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* ============================================================<!-- [et_pb_line_break_holder] -->   RESIZE + ANIMATION LOOP<!-- [et_pb_line_break_holder] -->   ============================================================ *\/<!-- [et_pb_line_break_holder] -->window.addEventListener('resize', () => {<!-- [et_pb_line_break_holder] -->  camera.aspect = window.innerWidth \/ window.innerHeight;<!-- [et_pb_line_break_holder] -->  camera.updateProjectionMatrix();<!-- [et_pb_line_break_holder] -->  renderer.setSize(window.innerWidth, window.innerHeight);<!-- [et_pb_line_break_holder] -->  composer.setSize(window.innerWidth, window.innerHeight);<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const clock = new THREE.Clock();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function animate() {<!-- [et_pb_line_break_holder] -->  requestAnimationFrame(animate);<!-- [et_pb_line_break_holder] -->  const delta = clock.getDelta();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  camera.position.lerp(targetCameraPos, 0.05);<!-- [et_pb_line_break_holder] -->  controls.target.lerp(targetLookAt, 0.05);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (currentModel) {<!-- [et_pb_line_break_holder] -->    currentModel.rotation.x += (targetRotation.x - currentModel.rotation.x) * 0.08;<!-- [et_pb_line_break_holder] -->    currentModel.rotation.y += (targetRotation.y - currentModel.rotation.y) * 0.08;<!-- [et_pb_line_break_holder] -->    currentModel.rotation.z += (targetRotation.z - currentModel.rotation.z) * 0.08;<!-- [et_pb_line_break_holder] -->    currentModel.position.y = Math.sin(performance.now() * 0.001) * 0.03;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  if (mixer) mixer.update(delta);<!-- [et_pb_line_break_holder] -->  updateHighlight();<!-- [et_pb_line_break_holder] -->  updateExplode();<!-- [et_pb_line_break_holder] -->  updateCallouts();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  controls.update();<!-- [et_pb_line_break_holder] -->  composer.render();<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->targetCameraPos.fromArray(MODELS[0].camera.position);<!-- [et_pb_line_break_holder] -->targetLookAt.fromArray(MODELS[0].camera.target);<!-- [et_pb_line_break_holder] -->camera.position.copy(targetCameraPos);<!-- [et_pb_line_break_holder] -->controls.target.copy(targetLookAt);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->loadModel(0);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->const checkLoaded = setInterval(() => {<!-- [et_pb_line_break_holder] -->  if (currentModel && !isTransitioning) {<!-- [et_pb_line_break_holder] -->    document.getElementById('loader').classList.add('hidden');<!-- [et_pb_line_break_holder] -->    clearInterval(checkLoaded);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}, 100);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->animate();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-39","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/geometrygrove.com\/index.php?rest_route=\/wp\/v2\/pages\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geometrygrove.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/geometrygrove.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/geometrygrove.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geometrygrove.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=39"}],"version-history":[{"count":3,"href":"https:\/\/geometrygrove.com\/index.php?rest_route=\/wp\/v2\/pages\/39\/revisions"}],"predecessor-version":[{"id":49,"href":"https:\/\/geometrygrove.com\/index.php?rest_route=\/wp\/v2\/pages\/39\/revisions\/49"}],"wp:attachment":[{"href":"https:\/\/geometrygrove.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}