<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0" name="viewport">
  <title>Neovis Inc.</title>
  <meta name="description" content="시스템 기술 기반의 스마트한 소프트웨어 개발 및 IT 솔루션 전문 기업 네오비스입니다.">
  <meta name="keywords" content="neovis, 네오비스, 소프트웨어, IT솔루션, 플랫폼">
  
  <link href="assets/favicon.png" rel="icon" type="image/png">
  <link href="assets/apple-touch-icon.png" rel="apple-touch-icon">

  <link rel="preconnect" href="https://cdn.jsdelivr.net">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/pretendard/dist/web/static/pretendard.css">

  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
  
  <style>
    :root {
      --color-primary: #1e293b;
      --color-secondary: #64748b;
      --color-bg-light: #f8fafc;
      --color-white: #ffffff;
      --color-border: #e2e8f0;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Pretendard', sans-serif;
      color: var(--color-primary);
      background-color: var(--color-white);
      -webkit-font-smoothing: antialiased;
      line-height: 1.6;
    }

    a {
      text-decoration: none;
      color: var(--color-primary);
      transition: color 0.3s ease;
    }

    a:hover {
      color: var(--color-secondary);
    }

    .header {
      background-color: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--color-border);
      padding: 10px 0;
      transition: all 0.3s ease;
    }

    .nav-custom-link {
      font-weight: 500;
      font-size: 16px;
      color: var(--color-primary);
      padding: 10px 0;
      margin: 0;
    }

    .nav-custom-link:hover, .nav-custom-link.active {
      color: #0f172a;
    }

    @media (min-width: 992px) {
      .header { padding: 15px 0; }
      .nav-custom-link { margin-left: 40px; padding: 8px 0 !important; }
      .nav-custom-link:hover, .nav-custom-link.active { border-bottom: 2px solid #0f172a; }
    }

    .navbar-collapse {
      background: var(--color-white);
      padding: 15px;
      border-radius: 8px;
      box-shadow: 0 10px 30px rgba(0,0,0,0.05);
      margin-top: 10px;
    }
    
    @media (min-width: 992px) {
      .navbar-collapse {
        background: transparent;
        padding: 0;
        box-shadow: none;
        margin-top: 0;
      }
    }

    .hero {
      padding: 120px 0;
      background-color: var(--color-white);
      overflow: hidden;
    }

    .hero-title {
      font-size: 4rem;
      font-weight: 800;
      letter-spacing: -1px;
      line-height: 1.2;
      margin-bottom: 24px;
      color: #0f172a;
    }

    .hero-subtitle {
      font-size: 1.25rem;
      color: var(--color-secondary);
      font-weight: 400;
      max-width: 600px;
      margin-bottom: 40px;
      line-height: 1.6;
      word-break: keep-all;
    }

    .btn-primary-custom {
      display: inline-block;
      background-color: #0f172a;
      color: #ffffff;
      padding: 16px 36px;
      border-radius: 8px;
      font-weight: 600;
      font-size: 1.1rem;
      transition: all 0.3s ease;
    }

    .btn-primary-custom:hover {
      background-color: #1e293b;
      color: #ffffff;
      transform: translateY(-2px);
      box-shadow: 0 10px 20px rgba(15, 23, 42, 0.15);
    }

    .hero-visual {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 450px;
    }

    .shape-circle {
      position: absolute;
      width: 320px;
      height: 320px;
      background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
      border-radius: 50%;
      z-index: 1;
    }

    .floating-logo {
      position: relative;
      z-index: 2;
      max-width: 180px;
      animation: floatLogo 5s ease-in-out infinite;
    }

    @keyframes floatLogo {
      0% { transform: translateY(0); }
      50% { transform: translateY(-15px); }
      100% { transform: translateY(0); }
    }

    .section-title {
      font-size: 2.5rem;
      font-weight: 800;
      margin-bottom: 60px;
      letter-spacing: -0.5px;
      color: #0f172a;
    }

    .about {
      padding: 120px 0;
      background-color: var(--color-bg-light);
    }

    .about p {
      font-size: 1.15rem;
      color: var(--color-secondary);
      max-width: 800px;
      margin: 0 auto;
      line-height: 1.8;
      word-break: keep-all;
    }

    .business {
      padding: 120px 0;
    }

    .business-card {
      background: var(--color-white);
      border: 1px solid var(--color-border);
      border-radius: 16px;
      padding: 40px;
      height: 100%;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }

    .business-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 40px rgba(0, 0, 0, 0.04);
    }

    .business-icon {
      font-size: 2.5rem;
      color: #0f172a;
      margin-bottom: 24px;
    }

    .business-card h3 {
      font-size: 1.5rem;
      font-weight: 700;
      margin-bottom: 16px;
    }

    .business-card p {
      color: var(--color-secondary);
      font-size: 1rem;
      margin: 0;
      line-height: 1.6;
      word-break: keep-all;
    }

    .contact {
      padding: 120px 0;
      background-color: var(--color-bg-light);
      min-height: 80vh; 
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .contact-info {
      background: var(--color-white);
      padding: 50px;
      border-radius: 16px;
      border: 1px solid var(--color-border);
      box-shadow: 0 10px 30px rgba(0,0,0,0.02);
    }

    .info-item {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
    }

    .info-icon {
      font-size: 2rem;
      color: #0f172a;
      margin-bottom: 15px;
      background: #f1f5f9;
      width: 64px;
      height: 64px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
    }

    .info-detail h4 {
      font-size: 1.2rem;
      font-weight: 700;
      margin-bottom: 8px;
    }

    .info-detail p {
      color: var(--color-secondary);
      margin: 0;
    }

    .footer {
      background-color: #0f172a;
      color: #94a3b8;
      padding: 60px 0;
      font-size: 0.95rem;
    }

    .footer-logo {
      font-size: 1.5rem;
      font-weight: 800;
      color: var(--color-white);
      margin-bottom: 20px;
    }

    .footer-links a {
      color: #cbd5e1;
      margin-right: 15px;
    }

    .footer-links a:hover {
      color: var(--color-white);
    }

    @media screen and (max-width: 991px) {
      .hero { padding: 100px 0 60px 0; text-align: center; }
      .hero-title { font-size: 2.5rem; margin-bottom: 16px; }
      .hero-subtitle { margin: 0 auto 30px auto; font-size: 1.1rem; }
      .hero-visual { min-height: 300px; margin-top: 40px; }
      .shape-circle { width: 240px; height: 240px; }
      .floating-logo { max-width: 140px; }
      
      .section-title { font-size: 2rem; margin-bottom: 40px; }
      .about { padding: 60px 0; }
      .about p { font-size: 1.05rem; }
      .business { padding: 60px 0; }
      .business-card { padding: 30px; }
      
      .contact { padding: 60px 0; min-height: auto; }
      .contact-info { padding: 30px; flex-direction: column !important; gap: 30px !important; }
      
      .footer { padding: 40px 0; text-align: center; }
      .footer p { font-size: 0.85rem; line-height: 1.8; }
      .footer-logo { margin-bottom: 15px; }
    }

    @media screen and (max-width: 768px) {
      .modal-body div {
        font-size: 0.85rem !important;
        line-height: 1.5 !important;
        margin-bottom: 20px !important;
      }
      .modal-body h5 {
        font-size: 1rem !important;
        margin-bottom: 10px !important;
      }
      .modal-body ul { padding-left: 15px !important; }
      .modal-body li { margin-bottom: 4px !important; }
    }

  </style>
</head>

<body class="index-page" data-bs-spy="scroll" data-bs-target="#navmenu" data-bs-root-margin="0px 0px -40%">

  <header id="header" class="header sticky-top navbar navbar-expand-lg">
    <div class="container">
      <a href="index.html" class="navbar-brand d-flex align-items-center">
        <span style="font-size: 22px; font-weight: 800; color: #0f172a; letter-spacing: -0.5px;">NEOVIS</span>
      </a>

      <button class="navbar-toggler shadow-none border-0 pe-0" type="button" data-bs-toggle="collapse" data-bs-target="#navmenu" aria-controls="navmenu" aria-expanded="false" aria-label="Toggle navigation">
        <i class="bi bi-list fs-1 text-dark"></i>
      </button>

      <div class="collapse navbar-collapse justify-content-end" id="navmenu">
        <ul class="navbar-nav align-items-lg-center">
          <li class="nav-item"><a href="#hero" class="nav-link nav-custom-link active">Home</a></li>
          <li class="nav-item"><a href="#about" class="nav-link nav-custom-link">About</a></li>
          <li class="nav-item"><a href="#business" class="nav-link nav-custom-link">Business</a></li>
          <li class="nav-item"><a href="#contact" class="nav-link nav-custom-link">Contact</a></li>
        </ul>
      </div>
    </div>
  </header>

  <main class="main">

    <section id="hero" class="hero">
      <div class="container">
        <div class="row align-items-center">
          <div class="col-lg-6">
            <h1 class="hero-title">Technology that<br>Simplifies the <span style="color: #64748b;">Complex.</span></h1>
            <p class="hero-subtitle">네오비스는 고도화된 소프트웨어 엔지니어링과 최적화 기술을 바탕으로, 사용자에게 가장 직관적이고 안정적인 디지털 경험을 제공합니다.</p>
            <a href="#business" class="btn-primary-custom">Our Business</a>
          </div>
          <div class="col-lg-6">
            <div class="hero-visual">
              <div class="shape-circle"></div>
              <img src="assets/logo.png" alt="Neovis Graphic" class="floating-logo">
            </div>
          </div>
        </div>
      </div>
    </section>

    <section id="about" class="about text-center">
      <div class="container">
        <h2 class="section-title">We Build Robust Solutions</h2>
        <p>
          네오비스는 시스템 기반의 스마트한 응용 소프트웨어 개발 및 확장 가능한 플랫폼 솔루션을 제공하는 IT 전문 기업입니다. 오랜 기간 축적된 개발 노하우와 트래픽 최적화 기술을 바탕으로, 복잡한 비즈니스 환경과 사용자 니즈를 단순하고 명확하게 해결하는 가치를 창출합니다.
        </p>
      </div>
    </section>

    <section id="business" class="business">
      <div class="container">
        <h2 class="section-title text-center">Core Business</h2>
        <div class="row gy-4 mt-4">
          
          <div class="col-lg-4">
            <div class="business-card text-center">
              <i class="bi bi-window-sidebar business-icon"></i>
              <h3>Software Engineering</h3>
              <p>Windows 기반의 고성능 유틸리티 및 클라이언트 애플리케이션 등 사용자 환경에 최적화된 직관적인 소프트웨어를 설계하고 신속하게 구현합니다.</p>
            </div>
          </div>

          <div class="col-lg-4">
            <div class="business-card text-center">
              <i class="bi bi-hdd-network business-icon"></i>
              <h3>Platform & Infrastructure</h3>
              <p>안정적인 대규모 트래픽 처리와 네트워크 가속화 기술을 바탕으로, 서비스를 매끄럽게 연결하고 지속적으로 운영 가능한 플랫폼 환경을 구축합니다.</p>
            </div>
          </div>

          <div class="col-lg-4">
            <div class="business-card text-center">
              <i class="bi bi-phone business-icon"></i>
              <h3>Mobile & Digital Service</h3>
              <p>모바일 생태계에 최적화된 앱 개발부터 퍼블리싱까지, 시장의 변화에 기민하게 대응하며 사용자의 일상에 혁신을 더하는 디지털 서비스를 제공합니다.</p>
            </div>
          </div>

        </div>
      </div>
    </section>

  <section id="contact" class="contact">
      <div class="container text-center">
        <h2 class="section-title mb-3">Contact Us</h2>
        <p class="mb-5" style="color: var(--color-secondary); font-size: 1.1rem; max-width: 600px; margin: 0 auto; line-height: 1.6; word-break: keep-all;">프로젝트 문의 및 제휴 제안을 환영합니다. 아래 연락처로 문의해 주시면 신속하게 답변해 드리겠습니다.</p>
        
        <div class="row justify-content-center">
          <div class="col-lg-10">
            <div class="contact-info py-5 px-3">
              <div class="row justify-content-center align-items-start gy-4 m-0 w-100">
                
                <div class="col-md-4 d-flex justify-content-center">
                  <div class="info-item">
                    <div class="info-icon"><i class="bi bi-geo-alt"></i></div>
                    <div class="info-detail">
                      <h4>Address</h4>
                      <p>인천광역시 서구 크리스탈로100</p>
                    </div>
                  </div>
                </div>

                <div class="col-md-4 d-flex justify-content-center">
                  <div class="info-item">
                    <div class="info-icon"><i class="bi bi-envelope"></i></div>
                    <div class="info-detail">
                      <h4>Email</h4>
                      <p><a href="mailto:info@neovis.net" style="color: var(--color-secondary);">info@neovis.net</a></p>
                    </div>
                  </div>
                </div>

                <div class="col-md-4 d-flex justify-content-center">
                  <div class="info-item">
                    <div class="info-icon" style="color: #64748b;"><i class="bi bi-telegram"></i></div>
                    <div class="info-detail">
                      <h4>Telegram</h4>
                      <p><a href="https://t.me/neovisinc" target="_blank" rel="noopener noreferrer" style="color: var(--color-secondary);">@neovisinc</a></p>
                    </div>
                  </div>
                </div>

              </div>
            </div>
          </div>
        </div>
      </div>
    </section>

  </main>

  <footer class="footer">
    <div class="container">
      <div class="row align-items-center gy-4">
        <div class="col-lg-6 text-center text-lg-start">
          <div class="footer-logo">NEOVIS INC.</div>
          <p class="mb-1">
            (주)네오비스 | 대표이사 : 안정우 <span class="d-none d-md-inline">|</span><br class="d-md-none">
            사업자등록번호 : 198-81-03749
          </p>
          <p class="mb-1">
            인천광역시 서구 크리스탈로100, 708-에이59호 <span class="d-none d-md-inline">|</span><br class="d-md-none">
            통신판매업신고 : 2026-인천서구-0057
          </p>
          <p class="mb-0 mt-3">Copyright © Neovis Inc. All Rights Reserved.</p>
        </div>

        <div class="col-lg-6">
          <div class="footer-links d-flex justify-content-center justify-content-lg-end mt-4 mt-lg-0" style="gap: 20px;">
            <a href="#" data-bs-toggle="modal" data-bs-target="#termsModal" style="margin: 0;">이용약관</a>
            <a href="#" data-bs-toggle="modal" data-bs-target="#privacyModal" style="margin: 0;">개인정보처리방침</a>
          </div>
        </div>

      </div>
    </div>
  </footer>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

<script>
    // 스크롤 시 네비게이션 내 active 클래스 자동 전환
    window.addEventListener('scroll', () => {
      let current = "";
      const sections = document.querySelectorAll("section");
      const navLinks = document.querySelectorAll(".nav-custom-link");

      sections.forEach((section) => {
        const sectionTop = section.offsetTop;
        if (pageYOffset >= sectionTop - 100) {
          current = section.getAttribute("id");
        }
      });

      navLinks.forEach((a) => {
        a.classList.remove("active");
        if (a.getAttribute("href").includes(current)) {
          a.classList.add("active");
        }
      });
    });

    // 🚨 여기서부터 새로 적용되는 핵심 스크롤 보정 스크립트입니다 🚨
    document.querySelectorAll('.nav-custom-link, .btn-primary-custom').forEach(link => {
      link.addEventListener('click', function(e) {
        
        // 대상 위치가 있는 링크(#)일 경우에만 작동하도록 예외 처리 (모달 링크 방해 방지)
        const targetId = this.getAttribute('href');
        if (!targetId || !targetId.startsWith('#') || targetId === '#') return;

        // 1. 브라우저의 기본 엉터리 스크롤 이동을 강제로 막습니다.
        e.preventDefault();

        // 2. 이동할 대상 섹션을 찾습니다.
        const targetElement = document.querySelector(targetId);

        if (targetElement) {
          // 3. 모바일 메뉴가 열려있는지 확인하고 상태를 저장한 뒤 닫습니다.
          const menuToggle = document.getElementById('navmenu');
          let isMenuOpen = false;
          
          if (window.innerWidth < 992 && menuToggle.classList.contains('show')) {
            isMenuOpen = true; // 메뉴가 열려있었음을 기록
            const bsCollapse = bootstrap.Collapse.getInstance(menuToggle) || new bootstrap.Collapse(menuToggle);
            bsCollapse.hide();
          }

          // 4. PC와 모바일, 그리고 메뉴 열림 상태에 따라 오프셋을 아주 정확하게 분기합니다.
          let headerOffset = 67; // 기본 헤더 높이 67px
          if (isMenuOpen) {
            headerOffset = 288; // 모바일 메뉴가 열려있다가 닫힐 때 발생하는 오차값
          }

          // 5. 계산된 정확한 위치로 부드럽게 스크롤시킵니다.
          const targetPosition = targetElement.offsetTop - headerOffset;
          
          window.scrollTo({
            top: targetPosition,
            behavior: 'smooth'
          });
        }
      });
    });
  </script>

  <script>
    function loadTermsData(url, elementId) {
      fetch(url)
        .then(response => {
          if (!response.ok) throw new Error('파일을 찾을 수 없습니다.');
          return response.text();
        })
        .then(data => {
          document.getElementById(elementId).innerHTML = data;
        })
        .catch(error => {
          document.getElementById(elementId).innerHTML = '<p class="text-danger text-center mt-4">데이터를 불러오는데 실패했습니다.</p>';
          console.error('Error fetching terms:', error);
        });
    }

    document.addEventListener('DOMContentLoaded', function() {
      loadTermsData('assets/terms.html', 'terms-content');
      loadTermsData('assets/privacy.html', 'privacy-content');
    });
  </script>

  <div class="modal fade" id="termsModal" tabindex="-1" aria-labelledby="termsModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="termsModalLabel" style="font-weight: 700; color: #0f172a;">이용약관</h5>
          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
        </div>
        <div class="modal-body" id="terms-content" style="color: #1e293b; line-height: 1.6;">
          <div class="text-center py-5 text-secondary">
            <div class="spinner-border spinner-border-sm" role="status"></div> 약관을 불러오는 중입니다...
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" style="background-color: #0f172a; border: none;">닫기</button>
        </div>
      </div>
    </div>
  </div>

  <div class="modal fade" id="privacyModal" tabindex="-1" aria-labelledby="privacyModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="privacyModalLabel" style="font-weight: 700; color: #0f172a;">개인정보처리방침</h5>
          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
        </div>
        <div class="modal-body" id="privacy-content" style="color: #1e293b; line-height: 1.6;">
          <div class="text-center py-5 text-secondary">
            <div class="spinner-border spinner-border-sm" role="status"></div> 방침을 불러오는 중입니다...
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" style="background-color: #0f172a; border: none;">닫기</button>
        </div>
      </div>
    </div>
  </div>

</body>

</html>