/* ============================================================
   DEVSTUDIO — Main Stylesheet  (레이아웃 중심)
   ============================================================ */


   
   @font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-1Thin.woff2') format('woff2');
    font-weight: 100;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-2ExtraLight.woff2') format('woff2');
    font-weight: 200;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-3Light.woff2') format('woff2');
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-4Regular.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-5Medium.woff2') format('woff2');
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-6SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-7Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-8ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: 'A2z';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@1.0/에이투지체-9Black.woff2') format('woff2');
    font-weight: 900;
    font-display: swap;
}


/* ── 0. Variables ── */
:root {
  --clr-bg:       #ffffff;
  --clr-surface:  #f5f5f7;
  --clr-border:   rgba(0, 0, 0, .1);

  --clr-accent:   #5b6ef5;
  --clr-green:    #0ea868;
  --clr-orange:   #e8640a;

  --clr-text:     #0e0f14;
  --clr-text-2:   rgba(0, 0, 0, .55);
  --clr-text-3:   rgba(0, 0, 0, .35);

  --font-ko: 'Noto Sans KR', sans-serif;
  --font-en: 'Inter', sans-serif;

  --nav-h: 68px;
}

/* ── Hero 위 투명 헤더 (renewal 전용) ── */
.nav-header {
  transition: background .4s ease, backdrop-filter .4s ease, box-shadow .4s ease;
}

.nav-header.nav-transparent {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}

.nav-menu a { transition: color .18s ease, background .18s ease, box-shadow .18s ease; }
.nav-logo img { transition: filter .4s ease; }
.nav-cta { transition: background .18s ease, border .18s ease, box-shadow .18s ease, opacity .18s ease; }
.nav-hamburger span { transition: background .4s ease; }

.nav-transparent .nav-menu a { color: rgba(255,255,255,.85); }
.nav-transparent .nav-menu a:hover {
  color: #fff;
  background: rgba(255,255,255,.16);
}
.nav-transparent .nav-menu a.is-active {
  color: #fff;
  background: rgba(255,255,255,.22);
  font-weight: 700;
}
.nav-transparent .nav-menu a:active {
  color: #fff;
  background: rgba(255,255,255,.24);
}
.nav-transparent .nav-logo img { filter: brightness(0) invert(1); }
.nav-transparent .nav-cta {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.3);
}
.nav-transparent .nav-cta:hover {
  background: rgba(255,255,255,.28);
  border-color: rgba(255,255,255,.5);
  box-shadow: none;
}
.nav-transparent .nav-hamburger span { background: #fff; }

/* dropdown도 투명 상태에서 흰색 */
.nav-transparent .dropdown-menu { background: #fff; backdrop-filter: blur(10px); }
.nav-transparent .dropdown-menu a {color:#333;}
.nav-transparent .dropdown-menu a:hover {color:var(--clr-accent)}

/* ── Splash Screen 로딩 ── */
.splash {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100000;
  /* display:none; */
}

.splash.out {
  transform: translateY(-100%);
  transition: transform .6s cubic-bezier(0.76, 0, 0.24, 1);
}

.splash-logo {
  width: 80px;
  height: 80px;
}

.splash-logo.breathing {
  animation: splashBreathing 1.5s ease-in-out infinite;
}

@keyframes splashBreathing {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.04); opacity: .85; }
}

/* ── 1. Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 62.5%; scroll-behavior: smooth; cursor: none; }
body {
  background: var(--clr-bg);
  color: var(--clr-text);
  font-family: var(--font-ko);
  cursor: none;
  font-size: 1.6rem;  /* 16px */
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a  { text-decoration: none; color: inherit; cursor: none; }
ul { list-style: none; }
button { cursor: none; }

/* ── Custom Cursor + Trail ── */
.cursor-dot {
  position: fixed;
  top: 0; left: 0;
  width: 20px;
  height: 20px;
  background: #5b8ef5;
  opacity: 0.8;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-100px, -100px);
  transition: width .15s, height .15s, margin .15s;
}

.cursor-dot.is-hover {
  width: 34px;
  height: 34px;
  margin-left: -7px;
  margin-top: -7px;
}

#cursorTrailCanvas {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 99998;
}

@media (max-width: 1024px) {
  html, body, a, button { cursor: auto !important; }
  .cursor-dot, #cursorTrailCanvas { display: none; }
}






  .title-wrap h3 {
    font-size: clamp(3.4rem, 4vw, 5.2rem);
    font-weight:700;
    letter-spacing: 0.3rem;
    word-spacing: -0.35rem;
    font-family: 'A2z';
  }


  .title-wrap p {
    font-size: 2.0rem;
    margin-top:10px;
    line-height:1.4;
  }



/* ============================================================
   HERO SECTION  (100vh, 좌 50% / 우 50%)
   ============================================================ */
.hero {
  width: 100%;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: stretch;
  padding: 0;
}


.hero-inner {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: linear-gradient(135deg, #222c66, #1c1c20);
  border-radius: 0;
  overflow: hidden;
  position: relative;
}

.hero-constellation {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  z-index: 0;
}

/* ── Hero Circular Scroll Indicator ── */
.hero-scroll-circle {
  position: relative;
  width: 140px;
  height: 140px;
  align-self: flex-start;
  display:none;
}

.hero-scroll-svg {
  width: 100%;
  height: 100%;
  animation: scrollCircleSpin 10s linear infinite;
}

.hero-scroll-ring {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .22em;
  fill: rgba(255,255,255,.5);
  font-family: 'Inter', sans-serif;
  text-transform: uppercase;
}

.hero-scroll-arrow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2.4rem;
  color: rgba(255,255,255,.5);
}

@keyframes scrollCircleSpin {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ============================================================
   HERO LEFT — 문구 영역
   ============================================================ */
.hero-left {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 72px;
  position: relative;
  z-index: 1;
}

.hero-left-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  width: 100%;
  height: 100%;
  justify-content: center;
  max-width: 540px;
}


/* Title */
.hero-title {
  font-family: var(--font-ko);
  font-weight: 400;
  font-size: clamp(4rem, 4vw, 6.2rem);
  line-height: 1.25;
  letter-spacing: -.04em;
  color: #fff;
    letter-spacing: 0.2rem;
    word-spacing: -0.4rem;
    font-family: 'A2z';
}

.hero-title em {
    letter-spacing: 0.3rem;
    word-spacing: -0.35rem;
  font-size: clamp(4rem, 4vw, 7.8rem);
    font-family: 'A2z';
  font-weight:600;
  color: #7aa8ff;
}

/* Description */
.hero-desc {
  font-size: 2.0rem;
  line-height: 1.5;
  color: rgba(255,255,255,.7);
  font-weight:500;
}

/* Hero Scroll Indicator */
.hero-scroll {
  display: flex;
  align-items: flex-end;
  gap: 15px;
  /* margin-top: auto; */
  padding-top: 40px; 
  padding-left:5px;
}

.hero-scroll-text {
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: .15em;
  color: rgba(255,255,255,.3);
}

.hero-scroll-line {
  width: 3px;
  height: 60px;
  background: rgba(255,255,255,.15);
  position: relative;
  overflow: hidden;
}

.hero-scroll-line::after {
  content: '';
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255,255,255,.5);
  animation: heroScrollLine 1.8s ease-in-out infinite;
}

@keyframes heroScrollLine {
  0%   { top: -100%; }
  40%  { top: 0; }
  60%  { top: 0; }
  100% { top: 100%; }
}

/* Buttons */
.hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  background: var(--clr-accent);
  border-radius: 6px;
  font-size: 1.5rem;
  font-weight: 600;
  color: #fff;
  transition: opacity .2s;
}

.btn-primary:hover { opacity: .85; }
.btn-primary i { font-size: 1.3rem; }




.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  border: 1px solid var(--clr-border);
  border-radius: 6px;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--clr-text-2);
  transition: color .2s, border-color .2s;
}

.btn-secondary:hover {
  color: var(--clr-text);
  border-color: rgba(0, 0, 0, .25);
}


.hero-actions .btn-secondary {
  background: transparent;
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
}


/* ============================================================
   HERO RIGHT — 서비스 카드 3분할 (가로)
   ============================================================ */
/* ── Hero card stagger entrance ── */
@keyframes heroCardSlideIn {
  0% { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}

.hero-right {
  display: flex;
  flex-direction: row;
  position: relative;
  z-index: 1;
}

/* Globe iframe in hero-right */
.hero-right-globe {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hero-globe-iframe {
  width: 100%;
  height: 100%;
  border: none;
  background: transparent;
  overflow: hidden;
  pointer-events: auto;
}

.service-card {
  flex: 1;
  border-left: 1px solid rgba(255,255,255,.1);
  display: flex;
  align-items: stretch;
  cursor: pointer;
  overflow: hidden;
  opacity: 0;
  animation: heroCardSlideIn .6s ease-out forwards;
}

.service-card:nth-child(1) { animation-delay: .3s; }
.service-card:nth-child(2) { animation-delay: .5s; }
.service-card:nth-child(3) { animation-delay: .7s; }

.service-card:first-child {
  border-left: none;
}

.card-inner {
  width: 100%;
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0;
  transition: background .3s; 
}

.service-card:hover .card-inner {
  background: rgba(255,255,255,.05);
}

.card-default {
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .35s ease;
}

.service-card:hover .card-default {
  transform: translateY(-8px);
}

.card-number {
  /* font-family: var(--font-en); */
  font-size: 6.0rem;
  font-weight: 700; 
  color: rgba(255,255,255,.3);
  margin-bottom: 20px;
}

.card-title {
  font-size: clamp(2.8rem, 2.2vw, 3.8rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.1;
}

.card-website  .card-title { color: #c4e5ff; }
.card-app      .card-title { color: #c4e5ff; }
.card-platform .card-title { color: #c4e5ff; }

.card-sub {
  font-family: var(--font-en);
  font-size: 2.0rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
}

.card-hover-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .4s ease, opacity .35s ease, margin-top .35s ease;
  margin-top: 0;
}

.service-card:hover .card-hover-content {
  max-height: 350px;
  opacity: 1;
  margin-top: 10px;
}

.card-desc {
  font-size: 1.8rem;
  color: rgba(255,255,255,.7);
  line-height: 1.6;
  font-weight:500;
}

.card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.card-tags li {
  padding: 3px 10px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 4px;
  font-size: 1.4rem;
  font-weight: 500;
  color: rgba(255,255,255,.7);
}

.card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1.4rem;
  font-weight: 600;
  color: #7aa8ff;
  transition: color .2s;
  padding-top: 4px;
  border-top: 1px solid rgba(255,255,255,.15);
}

/* .card-website  .card-link:hover { color: #3a4edc; }
.card-app      .card-link:hover { color: var(--clr-green); }
.card-platform .card-link:hover { color: var(--clr-orange); } */

.card-link i { font-size: 1.1rem; transition: transform .2s; }
.card-link:hover i { transform: translateX(3px); }





/* ============================================================
   HERO 
   ============================================================ */
.sample { margin: 40px 0; border: 2px dashed var(--clr-border); }

.hr {height:100px;width:2px;background:#ffffff99;margin:20px 10px;}

/* ── : 상단 타이틀 + 하단 가로 카드 ── */
.mainbox {
  height: 100vh;
  padding:110px 30px 30px;
}

.mainbox-wrap {
  background: url(https://duhr01wkxcvnq.cloudfront.net/static/image/main-bg01.webp);
  width:100%;
  height:100%;
  display: flex;
  align-items: center;
  border-radius:30px;
  overflow: hidden;
  position: relative;
  background-position:center
}

.mainbox-inner {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  padding: 0  20px;
}

.mainbox-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* margin-bottom: 100px; */
}

.mainbox-label { 
  font-size: 2.4rem;
  font-weight: 400;
  letter-spacing: .2em;
  color: #ffffffaa;
  margin-bottom: 16px;
}

.mainbox-title {
  font-family: 'A2z';
  font-size: clamp(3.6rem, 4.5vw, 6rem);
  font-weight: 400;
  color: #ffffffee;
  line-height: 1.25;
  letter-spacing: .0em;
}

.mainbox-title em { font-style: normal; font-weight:600; color:#7aa8ff; 
  letter-spacing: .03em;}

.mainbox-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 30px;
  padding: 12px 30px;
  background: var(--clr-accent);
  border-radius: 100px;
  font-size: 2.0rem;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  display: none;
}

.mainbox-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  background:#00000011;
  padding:30px 20px;
  backdrop-filter: blur(5px);
  border-radius:30px;
}

.mainbox-card {
  padding: 10px 30px;
  /* background: #434c7033;
  border-radius: 24px;
  backdrop-filter: blur(8px); */
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  border-right:1px solid #ffffff55;
}

.mainbox-card:last-child {
  border-right:0;
}

.mainbox-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(91, 110, 245, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
  color: var(--clr-accent);
  color:#fff;
}

.mainbox-card h3 {
  font-size: 2.6rem;
  font-weight: 700; 
  letter-spacing: -.02em;
  color:#fff;
}

.mainbox-card p {
  font-size: 1.8rem;
  line-height: 1.5;
  font-weight: 500;
  color:#ffffffaa;
}

.mainbox-arrow {
  position: absolute;
  top: 50%;
  right: 32px;
  transform: translateY(-50%);
  font-size: 2.2rem;
  color: #fff;
}



/* Scroll Down Indicator */
.scroll-down {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
}

.scroll-down span {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .15em;
  color: #ffffffaa;
}

.scroll-down-bar {
  width: 1px;
  height: 30px;
  background: #ffffff33;
  position: relative;
  overflow: hidden;
}

.scroll-down-bar::after {
  content: '';
  position: absolute;
  top: -100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  animation: scrollDown 1.5s ease-in-out infinite;
}

@keyframes scrollDown {
  0% { top: -100%; }
  40% { top: 0; }
  60% { top: 0; }
  100% { top: 100%; }
}

/* ============================================================
   PAIN POINT SECTION
   ============================================================ */

.pain-section {
  padding: 120px 0px;
}

.pain-inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.pain-title {
  letter-spacing: -.04em;
  line-height: 1.2;
  color: var(--clr-text);
}

.bubble-list {
  display: flex;
  flex-direction: column;
  gap: 30px; 
}

.bubble {
  position: relative;
  background: var(--clr-surface);
  border-radius: 4px 18px 18px 18px;
  padding: 25px 35px;
  width: fit-content;
  max-width: 100%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}

/* 말풍선 꼬리 */
.bubble::before {
  content: '';
  position: absolute;
  top: 0;
  left: -12px;
  width: 12px;
  height: 15px;
  background: var(--clr-surface);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.bubble::after {
  display: none;
}

/* 답변 말풍선 (accent) */
.bubble.bubble2 {
  background: var(--clr-accent);
  align-self: flex-end;
  border-radius: 18px 4px 18px 18px;
  margin-top: 10px;
}

.bubble.bubble2::before {
  left: auto;
  right: -7px;
  background: var(--clr-accent);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.bubble.bubble2 p {
  color: #fff;
  font-weight: 500;
  font-size:2.6rem;
}

.bubble p {
  font-size: 2.2rem;
  font-weight: 500;
  color: var(--clr-text);
  line-height: 1.6;
  white-space: nowrap;
  margin-top:0;
}


/* ============================================================
    CUSTOM SECTION
   ============================================================ */


  .custom-sec {
    padding: 120px 0px;
  }

  .custom-inner {
  }
  
  .custom-wrap {
    width:100%;
    position:relative;
  }

  .custom-wrap figure {
    width:80%;
    aspect-ratio: 3/1;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/custom-want-bright.webp);
    background-size:cover;
    background-repeat: no-repeat;
    background-position:center;
    /* background-attachment: fixed; */
    border-radius:0 100px 0 100px;
  }

  .custom-wrap div {
    position:absolute;
    bottom:-1px;
    right:0;
    /* transform: translateY(50%); */
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    padding:30px 50px;
    background:#fafafacc;
  }

  .custom-wrap div p {
    font-size: 1.8rem;
    color:#888;
    line-height:1.4;
  }

  
  .custom-wrap div .custom-title {
    font-size:3.0rem;
    color:#333;
    font-weight:700;
    margin-bottom:15px;
  }

  .custom-wrap2 {
    margin-top:50px;
  }

  .custom-wrap2 figure {
    margin-left:auto;
    border-radius: 100px 0;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/custom-function-bright.webp);
    background-size:cover;
    background-repeat: no-repeat;
    background-position:center;
  }
  
  .custom-wrap2 div {
    right:unset;
    left:0;
  }

/* ============================================================
  hp SECTION
   ============================================================ */


  .hp-sec {
    padding: 120px 0px;
  }

  .hp-title-wrap {
    max-width:1400px;
    padding:0 20px;
    position:relative;
  }

  .hp-title-wrap h3 {
    text-align: center;
  }

  .hp-title-wrap span {
    font-size: 15.0rem;
    font-weight:900;
    color:#00000008;
    position:absolute;
    line-height:1;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    letter-spacing: -1rem;
    z-index: -1;
    font-family: 'A2z';
  }

  .hp-title-wrap p {
    text-align: center;
  }

  /* ── hp-banner Slick Center Mode ── */
  .hp-banner {
    width: 100%;
    overflow: hidden;
    margin-top:50px;
  }

  .hp-banner .slick-list {
    overflow: visible;
  }

  .hp-banner .slick-slide {
    padding: 0 12px;
    transition: transform .4s ease, opacity .4s ease;
    opacity: .4;
    transform: scale(.85);
  }

  .hp-banner .slick-slide.slick-center {
    opacity: 1;
    transform: scale(1);
  }


  .hp-banner figure {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
  }

  .hp-banner figure img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }

  .hp-project-name {
    position: absolute;
    left: 10%;
    bottom: 0;
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    max-width: 80%;
    padding: 0 10px;
    border-left: 3px solid #5b6ef5;
    color: #333;
    font-size: 2.0rem;
    font-weight: 500;
    line-height: 1.2;
    word-break: keep-all;
  }

  /* Slick dots */
  .hp-banner .slick-dots {display: none !important;}

  /* .hp-banner .slick-dots {
    display: flex !important;
    justify-content: center;
    gap: 8px;
    margin-top: 32px;
    padding: 0;
    list-style: none;
  }

  .hp-banner .slick-dots li button {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: var(--clr-border);
    font-size: 0;
    padding: 0;
    cursor: pointer;
    transition: background .2s, transform .2s;
  }

  .hp-banner .slick-dots li.slick-active button {
    background: var(--clr-accent);
    transform: scale(1.3);
  } */

  /* Slick arrows */
  .hp-banner .slick-prev,
  .hp-banner .slick-next {
    position: absolute;
    top: 45%;
    transform: translateY(-50%);
    z-index: 10;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: none;
    background: unset;  
    font-size: 0;
    cursor: pointer;
    transition: background .2s, box-shadow .2s;
  }

  .hp-banner .slick-prev:hover,
  .hp-banner .slick-next:hover { 
  }

  .hp-banner .slick-prev::before,
  .hp-banner .slick-next::before {
    font-size: 6.5rem;
    color: #ddd;
    font-family: 'xeicon';
    font-weight: normal;
  }

  .hp-banner .slick-prev { left: 21%; }
  .hp-banner .slick-next { right: 21%; }

  .hp-banner .slick-prev::before { content: '\e93d'; }
  .hp-banner .slick-next::before { content: '\e940'; }



/* ============================================================
  app SECTION
   ============================================================ */


  .app-sec {
    /* min-height:100vh; */
    padding: 120px 0px;
      margin-bottom:100px;
  }

  .app-sec .app-inner {
    display: grid;
    grid-template-columns: .7fr 1fr;
    gap:50px;
    position: relative;
    padding:100px 50px;
    background: linear-gradient(to right, #9280fd, #5b6ef5) ;
    border-radius:80px;
    position:relative;
  }


  .app-sec .title-wrap h3 {color:#fff;}
  .app-sec .title-wrap p {color:#fff;}


  .app-mock {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width:50%;
    right:1%;
  }

  .app-mock .mock-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    z-index: 0;
    pointer-events: none;
    backface-visibility: hidden;
    will-change: opacity;
    transition: opacity .72s cubic-bezier(.22, 1, .36, 1);
  }

  .app-mock .mock-slide:first-child {
    position: relative;
  }

  .app-mock .mock-slide.active {
    opacity: 1;
    z-index: 2;
  }

  .app-mock .mock-slide.is-exiting {
    opacity: 0;
    z-index: 1;
  }

  .app-mock figure img {
    display:block;
    width:100%;height:100%;object-fit: cover;
    transform: translateZ(0);
  }

  .app-circle-wrap {width:100%;height:100%;position:absolute;overflow:hidden;border-radius:80px;}

  /* .app-circle-wrap::before {
    display: block;
    content: "";
    width:350px;
    aspect-ratio: 1/1;
    border-radius: 1000px;
    background:#ffffff22;
    position:absolute;
    top:-50px;
    left:-100px
  } */


  .app-circle-wrap::after {
    display: block;
    content: "";
    width:450px;
    aspect-ratio: 1/1;
    border-radius: 1000px;
    background:#ffffff22;
    position:absolute;
    top:-100px;
    right:-100px;
  }

  .img-wrap {
    display:grid;
    grid-template-columns: 1fr 1fr;
    width:100%;
    gap:15px;
  }

  .img-wrap figure {
    border-radius:15px;
    overflow: hidden;
  }


  .img-wrap figure div {
    width:100%;height:100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color:#fff;
    font-size:2.0rem;
    font-weight:600; 
  }

  .img-wrap>figure:nth-child(1) {
    aspect-ratio: 1/1;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/remote/170397930221435.webp);
    background-size:cover;
  }


  .img-wrap>figure:nth-child(1) div {
    background:#00000099;
  }

  .img-wrap>figure:nth-child(1) div::after {
    display: flex;
    content:"";
    width:100%;
    height:100%;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/shopl01.webp);
    background-repeat: no-repeat;
    background-position:Center;
  }



  .img-wrap>figure:nth-child(2) {
    aspect-ratio: 1/0.8;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/shop02.webp); 
    background-size: cover;
    margin-top:auto;
  }

  .img-wrap>figure:nth-child(2) div {
    background:#00000066;
  }

  .img-wrap>figure:nth-child(2) div::after {
    display: flex;
    content:"";
    width:100%;
    height:100%;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/shopl02.webp);
    background-repeat: no-repeat;
    background-position:Center;
  }


  .img-wrap>figure:nth-child(3) {
    aspect-ratio: 1/0.8;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/remote/d3d46bbb-22fe-48c5-91d8-d2433a4cb641.webp);
    background-size:cover;
  }
  
  .img-wrap>figure:nth-child(3) div {
    background:#00000066;
  }
  
  .img-wrap>figure:nth-child(3) div::after {
    display: flex;
    content:"";
    width:100%;
    height:100%;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/shopl04.webp);
    background-repeat: no-repeat;
    background-position:Center;
    background-size:50%;
  }

  

  .img-wrap>figure:nth-child(4) {
    aspect-ratio: 1/1;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/remote/162715254128264.webp); 
    background-size:cover;
  }


  .img-wrap>figure:nth-child(4) div {
    background:#00000066;
  }

  .img-wrap>figure:nth-child(4) div::after {
    display: flex;
    content:"";
    width:100%;
    height:100%;
    background:url(https://duhr01wkxcvnq.cloudfront.net/static/image/shopl03.webp);
    background-repeat: no-repeat;
    background-position:Center;
    background-size:50%;
  }



  .img-wrap2 {
    
  }



  .app-right-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left:50px;
  }


  .app-text-wrap {}

  .app-text-wrap span {
    font-size: 13.6rem;
    font-weight:900;
    color:#00000008;
    position:absolute;
    /* transform:translate(-50%,-50%); */
    line-height:1;
    bottom:0;
    letter-spacing: -1rem;
    z-index: -1;
    font-family: 'A2z';
  }

  .app-btn-wrap {
    display: flex;
    gap:15px;
    margin-top:50px;
  }

  .app-btn-wrap span {
    font-size: 1.8rem;
    background:#fff;
    color:#333;
    font-weight:500;
    padding:10px 25px;
    border-radius:5px;
  }

/* ── App portfolio showcase ── */
.app-sec {
  position: relative;
  padding: 120px 0 150px;
  margin-bottom: 70px;
  overflow: hidden;
  background: #fff;
}

.app-sec::before {
  content: "APPLICATION";
  position: absolute;
  right:0;
  bottom:0;
  z-index: 1;
  color: #00000008;
  font-family: 'A2z';
  font-size: 15.0rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -1rem;
  pointer-events: none;
}

.app-showcase {
  position: relative;
  z-index: 2;
  width: calc(100vw - max(20px, (100vw - 1400px) / 2));
  margin-left: max(20px, calc((100vw - 1400px) / 2));
  display: grid;
  grid-template-columns: 430px minmax(0, 1fr);
  gap: 64px;
}

.app-showcase > * {
  position: relative;
  z-index: 1;
}

.app-showcase-copy {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 34px;
  min-height: 570px;
  padding: 0 0 15px;
}

.app-showcase-copy > span {
  display: block;
  margin-bottom: 14px;
  color: #6b7280;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .1em;
}

.app-showcase-copy h3 {
  margin: 0;
  color: #111;
  font-family: 'A2z';
  font-size: clamp(3.4rem, 4vw, 5.2rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.3rem;
  word-spacing: -0.35rem;
  word-break: keep-all;
  white-space: nowrap;
}

.app-showcase-copy p {
  max-width: 430px;
  margin: 10px 0 0;
  color: #4b5563;
  font-size: 2.0rem;
  line-height: 1.4;
  font-weight: 500;
  word-break: keep-all;
}

.app-showcase-actions {
  display: flex;
  gap: 14px;
  margin-top: 46px;
}

.app-case-thumbs {
  /* 4장 고정 grid → 가로 스크롤(슬라이드): 관리자가 이미지를 많이 넣어도 한 줄로 넘겨볼 수 있음.
     4장 이하면 폭에 맞게 표시되고, 그 이상이면 가로로 스크롤(터치/트랙패드/드래그) */
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  max-width: 100%;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;          /* Firefox: 스크롤바 숨김 */
}
.app-case-thumbs::-webkit-scrollbar { display: none; } /* Chrome/Safari */

.app-case-thumb {
  position: relative;
  display: block;
  flex: 0 0 calc((100% - 30px) / 4); /* 4장은 폭에 꽉 차고, 5장부터는 가로 스크롤 */
  scroll-snap-align: start;
  aspect-ratio: 1 / 1.24;
  padding: 0;
  border: 1px solid rgba(17, 24, 39, .1);
  border-radius: 8px;
  background: #f4f5f8;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .2s ease, opacity .2s ease, transform .2s ease;
}

.app-case-thumb:hover {
  border-color: rgba(91, 110, 245, .45);
}

.app-case-thumb.is-active {
  border-color: var(--clr-accent);
}

.app-case-thumb:active {
  transform: scale(.97);
}

.app-case-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: top center;
}

.app-case-nav {
  width: 68px;
  height: 68px;
  border: 0;
  border-radius: 50%;
  background: var(--clr-accent);
  color: #fff;
  font-size: 3.4rem;
  line-height: 1;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
}

.app-case-nav:hover:not(:disabled) {
  background: #4d60df;
}

.app-case-nav:active {
  transform: scale(.96);
}

.app-case-nav:disabled {
  background: rgba(91, 110, 245, .14);
  color: var(--clr-accent);
  opacity: .55;
  cursor: default;
  transform: none;
}

.app-case-window {
  min-width: 0;
  overflow: hidden;
  padding: 0;
  cursor: none;
  user-select: none;
  touch-action: none; /* 가로 스와이프는 JS 전담 */
}

.app-case-track {
  display: flex;
  gap: 28px;
  will-change: transform;
  transition: transform .55s cubic-bezier(.22, 1, .36, 1);
  user-select: none;
}

/* 끝 blank spacer 제거 — 슬라이더 루프(wrap) 시 빈 여백 방지 */
.app-case-track::after {
  content: none;
  display: none;
  flex: 0 0 0;
}

.app-case-window.is-dragging {
  cursor: none;
}

.app-scroll-cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 10000;
  width: 82px;
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(91, 110, 245, .92);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: .08em;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-50%, -50%, 0) scale(.82);
  transition: opacity .18s ease, transform .18s ease;
  box-shadow: 0 14px 34px rgba(91, 110, 245, .24);
}

.app-scroll-cursor.is-visible {
  opacity: 1;
  transform: translate3d(-50%, -50%, 0) scale(1);
}

.app-showcase-copy-main {margin-top:70px;}

.app-case-card {
  position: relative;
  overflow: hidden;
  flex: 0 0 480px;
  min-height: 570px;
  border-radius: 12px;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.app-case-bg01 {
  background-image: linear-gradient(rgba(40,92,70,.2), rgba(8,16,18,.5)), url('https://duhr01wkxcvnq.cloudfront.net/static/image/app-bg01.webp');
}

.app-case-bg02 {
  background-image: linear-gradient(rgba(40,92,70,.2), rgba(8,16,18,.5)), url('https://duhr01wkxcvnq.cloudfront.net/static/image/app-bg02.webp');
}

.app-case-bg03 {
  background-image: linear-gradient(rgba(40,92,70,.2), rgba(8,16,18,.5)), url('https://duhr01wkxcvnq.cloudfront.net/static/image/app-bg03.webp');
}

.app-case-bg04 {
  background-image: linear-gradient(rgba(40,92,70,.2), rgba(8,16,18,.5)), url('https://duhr01wkxcvnq.cloudfront.net/static/image/app-bg04.webp');
}

.app-case-bg05 {
  background-image: linear-gradient(rgba(40,92,70,.2), rgba(8,16,18,.5)), url('https://duhr01wkxcvnq.cloudfront.net/static/image/app-bg05.webp');
}

/* 포트폴리오에서 등록한 앱 카드 배경 (inline background-image) */
.app-case-bg-custom {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.app-case-card:nth-child(2n-1) {
  margin-top:30px;
}

.app-case-card:nth-child(2n) {
  margin-bottom:30px;
}



.app-case-badge {
  position: absolute;
  left: 24px;
  top: 22px;
  z-index: 3;
  display: inline-flex;
  height: 28px;
  align-items: center;
  padding: 0 12px;
  border-radius: 4px;
  background: rgba(39,47,52,.72);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .03em;
}

.app-case-phone {
  position: absolute;
  left: 50%;
  top: 12%;
  width: 65%;
  max-width: 74%;
  transform: translateX(-50%);
  filter: drop-shadow(0 30px 32px rgba(0,0,0,.4));
}

.app-case-phone img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
}

.app-case-caption {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 4;
  display: flex;
  align-items: center;
  min-height: 82px;
  padding: 0 28px;
  border-radius: 10px;
  background: #00000077;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22);
  flex-direction: column;
  justify-content: center;
}

.app-case-caption span {
  color: #fff;
  font-size: 1.35rem;
  font-weight: 700;
  opacity: .86;
  white-space: nowrap;
}

.app-case-caption strong {
  color: #fff;
  font-size: 2.35rem;
  font-weight: 900;
  letter-spacing: -.03em;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .app-sec {
    padding: 100px 0 120px;
  }
  .app-sec::before {
    right: -24px;
    bottom: 24px;
    font-size: 10rem;
    letter-spacing: -.6rem;
  }
  .app-showcase {
    grid-template-columns: 1fr;
    width: auto;
    margin: 0 32px;
    gap: 36px;
  }
  .app-showcase-copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
    min-height: auto;
    padding: 0;
  }
  .app-showcase-copy p {
    max-width: 680px;
  }
  .app-showcase-actions {
    margin-top: 30px;
  }
  .app-case-thumbs {
    align-self: end;
    gap: 8px;
  }
  .app-case-card {
    flex-basis: 430px;
    min-height: 520px;
  }
  .app-case-phone {
    width: 58%;
  }
}

@media (max-width: 768px) {
  .app-sec {
    padding: 20px 0 80px;
    margin-bottom: 40px;
  }
  .app-sec::before {
    right: -18px;
    bottom: 8px;
    font-size: 6.6rem;
    letter-spacing: -.36rem;
  }
  .app-showcase {
    margin: 0 16px;
    gap: 28px;
  }
  .app-showcase-copy {
    display: block;
  }
  .app-showcase-copy-main {
    max-width: 560px;
    margin-top: 0;
  }
  .app-showcase-copy h3 {
    font-size: clamp(2.6rem, 5vw, 3.4rem);
    white-space: normal;
  }
  .app-showcase-copy p {
    max-width: 100%;
    margin-top: 8px;
    font-size: 1.6rem;
    line-height: 1.55;
  }
  .app-showcase-actions {
    gap: 10px;
    margin-top: 24px;
  }
  .app-case-nav {
    width: 48px;
    height: 48px;
    font-size: 2.6rem;
  }
  .app-case-thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
    margin-top: 24px;
  }
  .app-case-thumb {
    border-radius: 6px;
  }
  /* 모바일도 JS pointer drag + transform 스냅 사용 — 네이티브 가로 스크롤 비활성 */
  .app-case-window {
    overflow: hidden;
    padding-bottom: 16px;
    cursor: grab;
    scrollbar-width: none;
    touch-action: none; /* 가로 스와이프는 JS 전담 */
  }
  .app-case-window::-webkit-scrollbar {
    display: none;
  }
  .app-case-track {
    gap: 14px;
    /* transition: none 금지 — 스냅 시 .55s cubic-bezier 유지 (툭 점프 방지) */
  }
  .app-case-track::after {
    content: none;
    display: none;
    flex: 0 0 0;
  }
  .app-scroll-cursor {
    display: none;
  }
  .app-case-card {
    flex-basis: min(78vw, 340px);
    min-height: 430px;
    border-radius: 10px;
  }
  .app-case-card:nth-child(2n-1),
  .app-case-card:nth-child(2n) {
    margin-top: 0;
    margin-bottom: 0;
  }
  .app-case-badge {
    left: 16px;
    top: 16px;
    height: 24px;
    padding: 0 9px;
    font-size: 1.05rem;
  }
  .app-case-phone {
    top: 14%;
    width: 64%;
    max-width: 72%;
    filter: drop-shadow(0 22px 24px rgba(0,0,0,.34));
  }
  .app-case-caption {
    left: 16px;
    right: 16px;
    bottom: 16px;
    min-height: 72px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 12px 18px;
    border-radius: 8px;
  }
  .app-case-caption span {
    font-size: 1.15rem;
    white-space: normal;
  }
  .app-case-caption strong {
    font-size: 1.8rem;
    white-space: normal;
  }
}

@media (max-width: 480px) {
  .app-sec {
    padding: 16px 0 64px;
    margin-bottom: 24px;
  }
  .app-sec::before {
    font-size: 4.8rem;
    letter-spacing: -.25rem;
  }
  .app-showcase-copy-main {
    margin-top: 0;
  }
  .app-showcase {
    margin: 0 12px;
    gap: 22px;
  }
  .app-showcase-copy h3 {
    font-size: 2.7rem;
    letter-spacing: .16rem;
    word-spacing: -.18rem;
  }
  .app-showcase-copy p {
    font-size: 1.45rem;
  }
  .app-showcase-actions {
    margin-top: 18px;
  }
  .app-case-nav {
    width: 42px;
    height: 42px;
    font-size: 2.2rem;
  }
  .app-case-thumbs {
    gap: 6px;
    margin-top: 18px;
  }
  .app-case-card {
    flex-basis: min(84vw, 315px);
    min-height: 400px;
    border-radius: 8px;
  }
  .app-case-track::after {
    content: none;
    display: none;
    flex: 0 0 0;
  }
  .app-case-phone {
    top: 13%;
    width: 68%;
    max-width: 76%;
  }
  .app-case-caption {
    left: 12px;
    right: 12px;
    bottom: 12px;
    min-height: 66px;
    padding: 10px 14px;
  }
  .app-case-caption span {
    font-size: 1.05rem;
  }
  .app-case-caption strong {
    font-size: 1.55rem;
  }
}



/* ============================================================
  Platform SECTION
  ============================================================ */

  .plat-sec {
    position: relative;
    overflow: hidden;
    min-height:100vh;
    padding: 120px 0px;
    display: flex;
    align-items: center;
  }

  /* 좌 카피(~36%) + 우 3×3 카드(~64%) */
  .plat-sec .plat-inner {
    position: relative;
    z-index: 5;
    display: grid;
    grid-template-columns: minmax(260px, 36%) minmax(0, 1fr);
    gap: 36px 48px;
    align-items: start;
    width: 100%;
  }

  .plat-side {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    padding-top: 8px;
  }

  .plat-sec .title-wrap h3 {
    color:#fff;
    font-size:6.4rem;
    line-height:1.15;
    word-break: keep-all;
  }

  .plat-sec .title-wrap p {
    color:#ffffffcc;
    font-size:1.8rem;
    line-height:1.55;
    margin-top: 16px;
  }

  /* ── plat-wrap 카드 그리드 (3×3, 우측 컬럼) ── */
  .plat-wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 0;
    width: 100%;
    min-width: 0;
  }


  .plat-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 30px 32px;
    color: inherit;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 20px;
    background:
      linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.07)),
      rgba(255, 255, 255, .1);
    box-shadow:
      0 24px 80px rgba(0, 0, 0, .22),
      inset 0 1px 0 rgba(255, 255, 255, .16);
    backdrop-filter: blur(18px);
    text-align: center;
    overflow: hidden;
  }

  .plat-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent, rgba(255,255,255,.14), transparent);
    transform: translateX(-130%);
    transition: transform .65s ease;
    pointer-events: none;
  }

  .plat-card:hover::before {
    transform: translateX(130%);
  }

  .plat-icon {
    width: 72px;
    height: 72px;
  }

  .plat-icon img {
    width:100%;
    height:100%;
    object-fit: contain;
  }

  .plat-card-title {
    font-size: 2.0rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -.02em;
    margin-top:10px;
  }

  .plat-card-sub {
    font-family: var(--font-en);
    font-size: 1.6rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .5);
    letter-spacing: .07em;
    text-transform: uppercase;
  }

  .plat-sample-ui {
    background:
      radial-gradient(circle at 72% 20%, rgba(114, 225, 185, .18), transparent 24%),
      radial-gradient(circle at 86% 62%, rgba(127, 212, 255, .2), transparent 28%),
      linear-gradient(115deg, rgba(8, 10, 20, .97) 0%, rgba(8, 10, 20, .84) 45%, rgba(8, 10, 20, .34) 100%),
      radial-gradient(circle at 78% 22%, rgba(91, 110, 245, .32), transparent 36%),
      #080a14;
  }

  .plat-sample-ui::before,
  .plat-sample-ui::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
  }

  .plat-sample-ui::before {
    background:
      radial-gradient(circle, rgba(255,255,255,.48) 0 1px, transparent 1.6px) 76% 18% / 130px 130px,
      radial-gradient(circle, rgba(127,212,255,.44) 0 1px, transparent 1.5px) 92% 42% / 150px 150px,
      radial-gradient(circle, rgba(114,225,185,.32) 0 1px, transparent 1.6px) 62% 72% / 180px 180px;
    opacity: .56;
    animation: plat-star-drift 12s linear infinite;
  }

  .plat-sample-ui::after {
    background: linear-gradient(100deg, transparent 0%, rgba(127, 212, 255, .12) 48%, transparent 58%);
    transform: translateX(-100%);
    animation: plat-wide-scan 7s ease-in-out infinite;
    mix-blend-mode: screen;
  }

  /*
   * 좌측 컬럼 · 제목 아래 장식 보드
   * 위치: margin-top / margin-left / transform(translate·scale·rotate)
   * 구 absolute용 inset·top·right·bottom 은 사용하지 않음
   */
  .plat-sec .plat-ui-board {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 440px;
    height: 400px;
    margin-top: 70px;
    margin-left: 50px;
    transform: perspective(1000px) rotateY(10deg) rotateX(3deg) scale(.78);
    transform-origin: left top;
    opacity: .88;
    pointer-events: none;
  }

  .plat-ui-orbit {
    position: absolute;
    right: 28px;
    top: 22px;
    width: 620px;
    height: 420px;
    border: 1px solid rgba(127, 212, 255, .2);
    border-radius: 50%;
    transform: rotate(-18deg);
    box-shadow:
      0 0 80px rgba(127, 212, 255, .12),
      inset 0 0 60px rgba(91, 110, 245, .08);
  }

  .plat-ui-orbit::before,
  .plat-ui-orbit::after {
    content: "";
    position: absolute;
    border-radius: 50%;
  }

  .plat-ui-orbit::before {
    inset: 54px 72px;
    border: 1px dashed rgba(114, 225, 185, .2);
  }

  .plat-ui-orbit::after {
    width: 9px;
    height: 9px;
    right: 128px;
    top: 24px;
    background: #eaf7ff;
    box-shadow: 0 0 26px rgba(127, 212, 255, .95);
    animation: plat-pulse-dot 2.8s ease-in-out infinite;
  }

  .plat-ui-spark {
    position: absolute;
    z-index: 3;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    box-shadow:
      0 0 14px rgba(255,255,255,.95),
      0 0 34px rgba(127,212,255,.86);
    animation: plat-spark 2.6s ease-in-out infinite;
  }

  .plat-ui-spark::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent);
    transform: translate(-50%, -50%) rotate(-35deg);
  }

  .plat-ui-spark.spark-a { right: 468px; top: 42px; animation-delay: .1s; }
  .plat-ui-spark.spark-b { right: 84px; top: 150px; animation-delay: .9s; }
  .plat-ui-spark.spark-c { right: 348px; bottom: 88px; animation-delay: 1.6s; }

  .plat-ui-beam {
    position: absolute;
    z-index: 2;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(127, 212, 255, .72), rgba(114, 225, 185, .42), transparent);
    box-shadow: 0 0 18px rgba(127, 212, 255, .52);
    transform-origin: left center;
    opacity: .72;
  }

  .plat-ui-beam.beam-a {
    right: 178px;
    top: 170px;
    width: 420px;
    transform: rotate(-16deg);
    animation: plat-beam-flow 3.8s ease-in-out infinite;
  }

  .plat-ui-beam.beam-b {
    right: 64px;
    bottom: 150px;
    width: 360px;
    transform: rotate(13deg);
    animation: plat-beam-flow 4.4s ease-in-out infinite reverse;
  }

  .plat-ui-panel {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .14);
    background:
      linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.055)),
      rgba(255, 255, 255, .08);
    box-shadow:
      0 30px 80px rgba(0, 0, 0, .32),
      inset 0 1px 0 rgba(255, 255, 255, .18);
    backdrop-filter: blur(14px);
  }

  .plat-ui-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.18) 42%, transparent 54%);
    transform: translateX(-130%);
    animation: plat-panel-glint 5.8s ease-in-out infinite;
    pointer-events: none;
  }

  .plat-ui-panel-main {
    right: 90px;
    top: 62px;
    width: 430px;
    height: 300px;
    border-radius: 28px;
    padding: 30px;
  }

  .plat-ui-panel-side {
    right: 0;
    top: 204px;
    width: 260px;
    height: 260px;
    border-radius: 24px;
    padding: 26px;
  }

  .plat-ui-topline,
  .plat-ui-row,
  .plat-ui-chip {
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
  }

  .plat-ui-topline {
    width: 104px;
    height: 10px;
    margin-bottom: 32px;
    background: #6f82ff;
  }

  .plat-ui-row {
    width: 100%;
    height: 13px;
    margin-top: 14px;
  }

  .plat-ui-row.is-strong {
    width: 74%;
    height: 18px;
    background: rgba(255, 255, 255, .38);
  }

  .plat-ui-row.is-short {
    width: 56%;
  }

  .plat-ui-chart {
    position: absolute;
    left: 30px;
    right: 30px;
    bottom: 30px;
    display: flex;
    align-items: flex-end;
    gap: 14px;
    height: 86px;
  }

  .plat-ui-chart span {
    flex: 1;
    border-radius: 12px 12px 4px 4px;
    background: linear-gradient(180deg, rgba(114, 225, 185, .86), rgba(91, 110, 245, .28));
    box-shadow: 0 0 24px rgba(114, 225, 185, .18);
    transform-origin: bottom;
    animation: plat-bar-breathe 3.4s ease-in-out infinite;
  }

  .plat-ui-chart span:nth-child(1) { height: 42%; animation-delay: .1s; }
  .plat-ui-chart span:nth-child(2) { height: 78%; animation-delay: .5s; }
  .plat-ui-chart span:nth-child(3) { height: 55%; animation-delay: .9s; }
  .plat-ui-chart span:nth-child(4) { height: 92%; animation-delay: 1.2s; }

  .plat-ui-chip {
    width: 72px;
    height: 28px;
    margin-bottom: 28px;
    background: rgba(114, 225, 185, .74);
  }

  .plat-ui-list {
    display: grid;
    gap: 10px;
    margin-top: 28px;
  }

  .plat-ui-list span {
    height: 34px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .12);
    position: relative;
    overflow: hidden;
  }

  .plat-ui-list span::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(127, 212, 255, .18), transparent);
    transform: translateX(-100%);
    animation: plat-row-scan 3.2s ease-in-out infinite;
  }

  .plat-ui-list span:nth-child(2)::after { animation-delay: .35s; }
  .plat-ui-list span:nth-child(3)::after { animation-delay: .7s; }

  @keyframes plat-star-drift {
    0% { background-position: 76% 18%, 92% 42%, 62% 72%; }
    100% { background-position: 78% 22%, 90% 38%, 64% 68%; }
  }

  @keyframes plat-wide-scan {
    0%, 34% { transform: translateX(-110%); opacity: 0; }
    48% { opacity: 1; }
    72%, 100% { transform: translateX(110%); opacity: 0; }
  }

  @keyframes plat-pulse-dot {
    0%, 100% { transform: scale(.78); opacity: .48; }
    50% { transform: scale(1.25); opacity: 1; }
  }

  @keyframes plat-spark {
    0%, 100% { transform: scale(.7); opacity: .2; }
    42% { transform: scale(1.25); opacity: 1; }
    58% { transform: scale(.9); opacity: .45; }
  }

  @keyframes plat-beam-flow {
    0%, 100% { opacity: .16; filter: blur(.2px); }
    48% { opacity: .86; filter: blur(0); }
  }

  @keyframes plat-panel-glint {
    0%, 56% { transform: translateX(-130%); opacity: 0; }
    68% { opacity: 1; }
    86%, 100% { transform: translateX(130%); opacity: 0; }
  }

  @keyframes plat-bar-breathe {
    0%, 100% { transform: scaleY(.94); opacity: .76; }
    50% { transform: scaleY(1.04); opacity: 1; }
  }

  @keyframes plat-row-scan {
    0%, 38% { transform: translateX(-100%); opacity: 0; }
    52% { opacity: 1; }
    78%, 100% { transform: translateX(100%); opacity: 0; }
  }

  @media (max-width: 1024px) {
    .plat-sec .plat-inner {
      grid-template-columns: 1fr;
      gap: 28px;
    }

    .plat-sec .plat-ui-board {
      max-width: 420px;
      height: 240px;
      margin-top: 20px;
      opacity: .48;
      transform: perspective(900px) rotateY(8deg) rotateX(3deg) scale(.62);
    }
  }

  @media (max-width: 640px) {
    .plat-sec .plat-ui-board {
      display: none;
    }
  }






/* ============================================================
  CONTACT SECTION
   ============================================================ */

  .contact-title-wrap {
    
  }

.contact-sec {
  padding: 120px 48px;
  border-top: 1px solid var(--clr-border);
  /* background: var(--clr-surface); */
}

.contact-inner {
  margin: 0 auto;
  display: grid;
  grid-template-columns: .5fr 1fr;
  gap: 20px;
  max-width:1200px;
}

.contact-title {
  font-size: clamp(2.8rem, 4vw, 6.0rem);
  font-weight: 700;
  word-break: keep-all;
  letter-spacing: .05em;
  line-height: 1.2;
  color: var(--clr-text);
  margin-bottom:20px;
  font-family: 'A2z';
  /* text-align: center; */
}

.contact-subtitle {
  font-size: 1.8rem;
  color: var(--clr-text-2); 
  /* text-align: center; */
  margin-bottom: 50px;
}

/* ── 탭 버튼 ── */
.contact-tabs {
  display: flex;
  gap: 4px;
  background: var(--clr-border);
  border-radius: 1000px;
  padding: 6px;
  max-width: 320px;
  /* margin: 0 auto; */
}

.tab-btn {
  flex: 1;
  padding: 15px 30px;
  background: none;
  border: none;
  border-radius: 800px;
  font-size: 1.8rem;
  font-weight: 500;
  color: var(--clr-text-3);
  cursor: pointer;
  transition: all .25s ease;
}

.tab-btn:hover {
  color: var(--clr-text-2);
}

.tab-btn.active {
  background: #fff;
  color: var(--clr-accent);
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}

/* ── 폼 래퍼 ── */
.contact-form-wrapper {
  display: none;
  background: #fff;
  /* border: 1px solid var(--clr-border); */
  /* border-radius: 16px; */
  padding: 0 40px;
  /* box-shadow: 0 4px 24px rgba(0,0,0,.04); */
}

.contact-form-wrapper.active {
  display: block;
}

/* ── 폼 스타일 ── */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.form-hor {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.form-group label {
  font-size: 1.8rem;
  font-weight: 500;
  color: var(--clr-text);
}

.required {
  color: var(--clr-accent);
  font-weight: 700;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 18px;
  font-size: 1.6rem;
  font-family: var(--font-ko);
  color: var(--clr-text);
  /* background: var(--clr-surface); */
  border: 1px solid var(--clr-border);
  border-radius: 8px;
  transition: border-color .2s, box-shadow .2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--clr-accent);
  box-shadow: 0 0 0 3px rgba(91, 110, 245, .1);
}

.form-group textarea {
  resize: vertical;
  min-height: 120px;
  line-height: 1.6;
}

.form-group input[type="file"] {
  padding: 15px 18px;
  font-size: 1.6rem;
  cursor: pointer;
}

.form-help {
  font-size: 1.3rem;
  color: var(--clr-text-3);
  line-height: 1.5;
}

/* ── 파일 업로드 ── */
.file-upload {
  position: relative;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 8px;
  padding: 14px 20px;
  cursor: pointer;
  transition: border-color .2s, background .2s;
}

.file-upload:hover {
  border-color: var(--clr-accent);
  background: rgba(91,110,245,.02);
}

.file-upload-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 1;
}

.file-upload-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  pointer-events: none;
  position: relative;
  z-index: 2;
}

.file-upload-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(91,110,245,.08);
  color: var(--clr-accent);
  font-size: 1.8rem;
  font-weight: 300;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  flex-shrink: 0;
}

.file-upload-text {
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--clr-text-2);
}

.file-upload-hint {
  font-size: 1.3rem;
  color: var(--clr-text-3);
  margin-left: auto;
}

.file-upload-name {
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--clr-accent);
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
}

.file-upload-content[hidden],
.file-upload-summary[hidden] {
  display: none;
}

.file-upload-summary {
  display: grid;
  gap: 10px;
  position: relative;
  z-index: 2;
}

.file-upload-summary__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: relative;
  z-index: 3;
}

.file-upload-summary__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.file-upload-summary__label {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--clr-accent);
  white-space: nowrap;
}

.file-upload-summary__count {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(91,110,245,.08);
  color: var(--clr-accent);
  font-size: 1.2rem;
  font-weight: 700;
  white-space: nowrap;
}

/* 선택 후 추가 첨부 CTA (유일 경로) */
.file-upload-summary__add {
  position: relative;
  z-index: 4;
  flex: 0 0 auto;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--clr-accent);
  border-radius: 6px;
  background: #fff;
  color: var(--clr-accent);
  font-size: 1.3rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}

.file-upload-summary__add:hover {
  background: rgba(91,110,245,.06);
}

.file-upload-summary__list {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  list-style: none;
}

.file-upload-summary__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px;
  background: #fff;
  font-size: 1.4rem;
  line-height: 1.45;
  color: var(--clr-text-2);
  word-break: break-all;
}

.file-upload-summary__name {
  min-width: 0;
  flex: 1;
}

.file-upload-summary__remove {
  flex: 0 0 auto;
  position: relative;
  z-index: 4;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 6px;
  background: #fff;
  color: var(--clr-text-2);
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.file-upload-summary__remove:hover {
  border-color: var(--clr-accent);
  color: var(--clr-accent);
}

.file-upload.has-file {
  border-color: var(--clr-accent);
  background: rgba(91,110,245,.02);
  cursor: default;
}

.file-upload.has-file .file-upload-summary {
  pointer-events: auto;
}

.file-upload.has-file .file-upload-summary__list,
.file-upload.has-file .file-upload-summary__remove,
.file-upload.has-file .file-upload-summary__add {
  position: relative;
  z-index: 4;
}

/* ── 예산 버튼 ── */
.budget-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.budget-btn {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  text-align: center;
  padding: 11px 14px 12px;
  white-space: nowrap;
  background: var(--clr-bg);
  border: 1px solid var(--clr-border);
  border-radius: 500px;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--clr-text-2);
  cursor: pointer;
  transition: all .2s;
}

.budget-btn:hover {
  border-color: var(--clr-accent);
  color: var(--clr-accent);
}

.budget-btn.active {
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  color: #fff;
}

@media (max-width: 480px) {
  .budget-btn {
    font-size: 1.3rem;
    padding: 10px 12px 11px;
  }
}

/* ── 원하는 기능
 * 레이아웃: 카테고리 사각 틀 + 작은 탭 / 하위 패널
 * 색상: 제작 예산(.budget-btn) 선택 전·후와 동일
 */
.feature-field-hint {
  margin: 0 0 12px;
  font-size: 1.4rem;
  line-height: 1.5;
  color: var(--clr-text-3);
}

.feature-categories {
  display: grid;
  gap: 0;
}

.feature-category-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px;
  border: 1px solid var(--clr-border);
  border-bottom: none;
  border-radius: 12px 12px 0 0;
  background: #F3F4F6;
}

.feature-category-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 14px;
  background: var(--clr-bg);
  border: 1px solid var(--clr-border);
  border-radius: 8px;
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--clr-text-2);
  line-height: 1.2;
  white-space: nowrap;
  word-break: keep-all;
  cursor: pointer;
  transition: all .2s;
}

.feature-category-tab:hover {
  border-color: var(--clr-accent);
  color: var(--clr-accent);
}

.feature-category-tab.is-active {
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  color: #fff;
}

.feature-category-tab.is-active:hover {
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  color: #fff;
}

.feature-category-tab__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.06);
  color: inherit;
  font-size: 1.15rem;
  font-weight: 700;
}

.feature-category-tab.is-active .feature-category-tab__count {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.feature-category-tab__count.has-selected {
  background: rgba(0, 0, 0, 0.1);
}

.feature-category-tab.is-active .feature-category-tab__count.has-selected {
  background: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.feature-category-panels {
  min-width: 0;
  border: 1px solid var(--clr-border);
  border-radius: 0 0 12px 12px;
  background: #fff;
}

.feature-category-panel {
  padding: 16px;
}

.feature-category-panel[hidden],
.feature-category-panel:not(.is-active) {
  display: none;
}

.feature-category-panel.is-active {
  display: block;
}

.feature-category-panel__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
  padding-bottom: 10px;
  border-bottom: 1px solid #E5E8EB;
}

.feature-category-panel__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--clr-text);
  line-height: 1.3;
}

.feature-category-panel__meta {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--clr-text-3);
  white-space: nowrap;
}

.feature-category-panel__hint {
  margin: 0 0 12px;
  font-size: 1.3rem;
  line-height: 1.45;
  color: var(--clr-text-3);
}

.feature-empty-hint {
  margin: 0;
  font-size: 1.4rem;
  color: var(--clr-text-3);
  line-height: 1.5;
}

@media (prefers-reduced-motion: reduce) {
  .feature-category-tab,
  .feature-btn {
    transition: none;
  }
}

.feature-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.feature-btn {
  padding: 12px 30px 13px;
  background: var(--clr-bg);
  border: 1px solid var(--clr-border);
  border-radius: 500px;
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--clr-text-2);
  cursor: pointer;
  transition: all .2s;
  white-space: nowrap;
  word-break: keep-all;
}

.feature-btn:hover {
  border-color: var(--clr-accent);
  color: var(--clr-accent);
}

.feature-btn.selected {
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  color: #fff;
}

.feature-custom {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.feature-custom-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  max-width: 620px;
}

.feature-custom-input {
  width: 100%;
}

.feature-custom-add {
  min-width: 78px;
  padding: 0 18px;
  border: 1px solid var(--clr-accent);
  border-radius: 12px;
  background: var(--clr-accent);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .2s;
}

.feature-custom-add:hover {
  transform: translateY(-1px);
}

.feature-custom-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.feature-custom-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 8px 0 14px;
  border: 1px solid var(--clr-accent);
  border-radius: 500px;
  background: rgba(91,110,245,.08);
  color: var(--clr-accent);
  font-size: 1.4rem;
  font-weight: 700;
}

.feature-custom-chip__remove {
  padding: 4px 8px;
  border: 0;
  border-radius: 500px;
  background: rgba(91,110,245,.12);
  color: var(--clr-accent);
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
}

/* ── 제출 버튼 ── */
.form-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px 32px;
  margin-top: 12px;
  background: var(--clr-accent);
  border: none;
  border-radius: 10px;
  font-size: 2.0rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  transition: background .2s, transform .15s, box-shadow .2s;
}

.form-submit-btn:hover {
  background: #4a5de0;
}

.form-submit-btn:active {
  transform: translateY(0);
}

.form-submit-btn i {
  font-size: 1.3rem;
}





/* ============================================================
   SPLASH LOGO ANIMATION
   ============================================================ */
.sp-l {
  fill: transparent;
  stroke: #0288ff;
  stroke-width: 1;
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: spDrawL 1s ease-out 0.2s forwards, spFillL 0.4s ease-out 1s forwards;
}

.sp-b {
  fill: transparent;
  stroke: #303030;
  stroke-width: 1;
  stroke-dasharray: 250;
  stroke-dashoffset: 250;
  stroke-linecap: round;
  stroke-linejoin: round;
  animation: spDrawB 1s ease-out 0.5s forwards, spFillB 0.4s ease-out 1.3s forwards;
}

@keyframes spDrawL { to { stroke-dashoffset: 0; } }
@keyframes spFillL { to { fill: #0288ff; stroke-width: 0; } }
@keyframes spDrawB { to { stroke-dashoffset: 0; } }
@keyframes spFillB { to { fill: #303030; stroke-width: 0; } }


/* ============================================================
   HERO SPLIT (VERSION F)
   ============================================================ */
.hs-splitf { width: 100%; height: 100vh; min-height: 600px; position: relative; }
.hs-splitf-inner { width: 100%; height: 100%; overflow: hidden; position: relative; background:linear-gradient(0deg, #595bb7, #0e0f14); }
.hs-splitf-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }

/* 중앙 원형 텍스트 */
.hs-splitf-circle {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 150px; height: 150px;
  z-index: 4;
  pointer-events: none;
  transition: opacity .3s;
}

.hs-splitf-circle-svg {
  width: 100%; height: 100%;
  animation: splitfCircleSpin 10s linear infinite;
}

.hs-splitf-circle-text {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: .22em;
  fill: rgba(255,255,255,.35);
  font-family: 'Inter', sans-serif;
  text-transform: uppercase;
}

@keyframes splitfCircleSpin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.hs-splitf-inner.hover-left .hs-splitf-circle,
.hs-splitf-inner.hover-right .hs-splitf-circle { opacity: 0; }

/* 배경 오버레이 */
.hs-bgf { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; transition: clip-path .5s cubic-bezier(.25,.46,.45,.94); pointer-events: none; }
.hs-bgf-dark { background: rgba(10,10,24,.35); clip-path: polygon(0 0, 55% 0, 45% 100%, 0 100%); }
.hs-bgf-light { background:linear-gradient(180deg, #5324bc99, #1d389899); clip-path: polygon(55% 0, 100% 0, 100% 100%, 45% 100%); }

/* 패널 */
.hs-pf { position: absolute; top: 0; height: 100%; display: flex; align-items: center; z-index: 3; cursor: pointer; transition: clip-path .5s cubic-bezier(.25,.46,.45,.94), padding .5s cubic-bezier(.25,.46,.45,.94); }
.hs-pf-left { left: 0; width: 100%; clip-path: polygon(0 0, 55% 0, 45% 100%, 0 100%); justify-content: flex-start; padding-left: 12%; }
.hs-pf-right { right: 0; width: 100%; clip-path: polygon(55% 0, 100% 0, 100% 100%, 45% 100%); justify-content: flex-end; padding-right: 12%; }

/* 왼쪽 확장 */
.hs-splitf-inner.hover-left .hs-pf-left,
.hs-splitf-inner.hover-left .hs-bgf-dark { clip-path: polygon(0 0, 90% 0, 80% 100%, 0 100%); }
.hs-splitf-inner.hover-left .hs-pf-right,
.hs-splitf-inner.hover-left .hs-bgf-light { clip-path: polygon(90% 0, 100% 0, 100% 100%, 80% 100%); }
.hs-splitf-inner.hover-left .hs-pf-left { padding-left: 30%; }

/* 오른쪽 확장 */
.hs-splitf-inner.hover-right .hs-pf-right,
.hs-splitf-inner.hover-right .hs-bgf-light { clip-path: polygon(20% 0, 100% 0, 100% 100%, 10% 100%); }
.hs-splitf-inner.hover-right .hs-pf-left,
.hs-splitf-inner.hover-right .hs-bgf-dark { clip-path: polygon(0 0, 20% 0, 10% 100%, 0 100%); }
.hs-splitf-inner.hover-right .hs-pf-right { padding-right: 30%; }

/* 축소 텍스트 숨김 */
.hs-splitf-inner.hover-left .hs-pf-right .hs-pf-content { opacity: 0; }
.hs-splitf-inner.hover-right .hs-pf-left .hs-pf-content { opacity: 0; }

/* 자세히 보기 버튼 */
.hs-pf-more {
  display: block;
  margin-top: 20px;
  padding: 8px 20px;
  font-size: 2.0rem;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 100px;
  cursor: pointer;
  max-height: 50px;
  overflow: hidden;
  opacity: 1;
  margin-left:auto;
  margin-right:auto;
  width:fit-content;
  transition: max-height .3s ease, margin .3s ease, opacity .2s ease, padding .3s ease, color .2s, border-color .2s;
}
.hs-pf-more i {font-size:1.8rem;}

.hs-pf-more:hover {
  color: #fff;
  border-color: rgba(255,255,255,.5);
}

.hs-splitf-inner.hover-left .hs-pf-more,
.hs-splitf-inner.hover-right .hs-pf-more {
  max-height: 0;
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
  opacity: 0;
  pointer-events: none;
}

/* 패널 내용 */
.hs-pf-content { text-align: center; max-width: 650px; padding: 0 40px; transition: opacity .3s; }
.hs-pf-tag { font-size: 2.4rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.hs-pf-title { font-family: 'A2z'; font-size: clamp(3rem, 4vw, 10rem); font-weight: 500; line-height: 1.2; }
.hs-pf-detail { opacity: 0; max-height: 0; overflow: hidden; transition: opacity .4s ease .1s, max-height .4s ease .1s; }
.hs-splitf-inner.hover-left .hs-pf-left .hs-pf-detail,
.hs-splitf-inner.hover-right .hs-pf-right .hs-pf-detail { opacity: 1; max-height: 300px; }
.hs-pf-desc { font-size: 2.4rem; line-height: 1.6; margin-top: 20px; }
.hs-pf-actions { display: flex; gap: 12px; justify-content: center; margin-top: 24px; }
.hs-pf-btn { padding: 12px 28px; border-radius: 100px; font-size: 2.0rem; font-weight: 600; transition: opacity .2s; }
.hs-pf-btn:hover { opacity: .85; }

/* 다크 쪽 텍스트 */
.hs-pf-left .hs-pf-tag { color: rgba(255,255,255,.4); }
.hs-pf-left .hs-pf-title { color: #fff; }
.hs-pf-left .hs-pf-desc { color: rgba(255,255,255,.8); }
.hs-pf-left .hs-pf-btn-primary { background: #fff; color: #333; }
.hs-pf-left .hs-pf-btn-ghost { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.25); }

/* 라이트 쪽 텍스트 */
.hs-pf-right .hs-pf-tag { color: rgba(255,255,255,.5); }
.hs-pf-right .hs-pf-title { color: #fff; }
.hs-pf-right .hs-pf-desc { color: rgba(255,255,255,.65); }
.hs-pf-right .hs-pf-btn-primary { background: #fff; color: #2442bc; }
.hs-pf-right .hs-pf-btn-ghost { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.3); }



/* ============================================================
   RESPONSIVE — 전체 통합
   ============================================================ */


@media (max-width: 1700px) {
  .hero-inner { grid-template-columns: .7fr 1fr; }
}

@media (max-width: 1400px) {
  .hero {height:auto;}
  .hero-inner { grid-template-columns: 1fr 1fr; }
  .hero-left { padding: 48px 40px; }
  .hero-title { font-size: clamp(3.2rem, 3.5vw, 4.8rem); }
  .hero-desc { font-size: 1.8rem; }
  .hero-right { flex-direction: column; }
  .service-card { flex: 1; border-left: none; border-top: 1px solid #ffffff66; }
  .service-card:first-child { border-top: none; }

  /* Hero Right — hover 비활성화, 콘텐츠 상시 표시 */
  .service-card { cursor: default; }
  .service-card:hover .card-inner { background: none; }
  .service-card:hover .card-default { transform: none; }
  .card-hover-content {
    max-height: none;
    opacity: 1;
    margin-top: 14px;
    overflow: visible;
    display: none;
  }
  .card-link i { display: none; }
  
}

/* ── ≤ 1280px ── */
@media (max-width: 1280px) {

  /* Mainbox */
  .mainbox { padding: 90px 20px 20px; }
  .mainbox-wrap { border-radius: 24px; }
  .mainbox-label { font-size: 2.0rem; }
  .mainbox-card h3 { font-size: 2.2rem; }
  .mainbox-card p { font-size: 1.6rem; }
  .mainbox-arrow { right: 20px; font-size: 1.8rem; }

  /* Hero */
  .hero { padding: 90px 20px 20px; }
  .hero-inner { border-radius: 36px; }
  .hero-left { padding: 40px 36px; }
  .hero-left-content { gap: 24px; }
  .hero-title { font-size: clamp(3.0rem, 3.2vw, 4.2rem); word-break: keep-all; }
  .hero-desc { font-size: 1.7rem; }
  .card-inner { padding: 24px 24px; }
  .card-title { font-size: clamp(2.2rem, 2vw, 3.0rem); }
  .card-sub { font-size: 1.6rem; }
  .card-number { font-size: 1.6rem; }

  /* Pain */
  .pain-section { padding: 100px 20px; }
  .bubble p { font-size: 2.0rem; }
  .bubble.bubble2 p { font-size: 2.4rem; }

  /* Custom */
  .custom-sec { padding: 100px 20px; }

  /* HP Banner */
  .hp-sec { padding: 100px 0; }
  .hp-banner .slick-slide {
    padding: 0 10px;
  }
  .hp-project-name {
    left: 8%;
    font-size: 1.8rem;
  }

  /* App */
  .app-sec { padding: 100px 0 120px; margin-bottom: 60px; }
  .app-sec .app-inner { border-radius: 50px; padding: 80px 40px; }
  .app-text-wrap span { font-size: 10rem; }

  /* Platform */
  .plat-sec { padding: 100px 20px; }
  .plat-sec .plat-inner { gap: 28px 36px; }
  .plat-sec .title-wrap h3 { font-size: 5.2rem; }
  .plat-sec .title-wrap p { font-size: 1.6rem; }
  .plat-wrap { width: 100%; gap: 14px; }
  .plat-icon {width:56px;height:56px;}
  .plat-card-title {font-size:1.6rem;}
  .plat-card-sub {font-size:1.3rem;letter-spacing: .03em;}
  .plat-card {padding:32px 16px;}

  /* Contact */
  .contact-sec { padding: 100px 32px; }
}

/* ── ≤ 1024px ── */
@media (max-width: 1024px) {

  /* Mainbox */
  .mainbox { padding: 80px 16px 16px; }
  .mainbox-wrap { border-radius: 20px; }
  .mainbox-cards { grid-template-columns: 1fr; gap: 0; border-radius: 20px; padding: 20px 16px; }
  .mainbox-card { border-right: none; border-bottom: 1px solid #ffffff33; padding: 16px 20px; flex-direction: row; align-items: center; justify-content: space-between; }
  .mainbox-card:last-child { border-bottom: none; }
  .mainbox-card h3 { font-size: 2.0rem; }
  .mainbox-card p { font-size: 1.5rem; }
  .mainbox-arrow { position: static; transform: none; font-size: 1.8rem; }
  .scroll-down { bottom: 24px; }

  /* Hero — 1열 전환 */
  .hero { padding: 80px 16px 16px; height: auto; min-height: auto; }
  .hero-inner { grid-template-columns: 1fr; border-radius: 28px; }
  .hero-left { padding: 48px 36px; border-right: none; border-bottom: 1px solid #ffffff66; }
  .hero-left-content { gap: 24px; max-width: 100%; }
  .hero-title { font-size: clamp(3.2rem, 5vw, 4.4rem); word-break: keep-all; }
  .hero-desc { font-size: 1.7rem; }
  .hero-right { flex-direction: row; }
  .service-card { border-left: 1px solid #ffffff66; border-top: none; min-height: 180px; }
  .service-card:first-child { border-left: none; }
  .card-inner { padding: 28px 24px; }
  .card-title { font-size: 2.4rem; }
  .card-sub { font-size: 1.5rem; }
  .card-desc { font-size: 1.5rem; }

  /* Hero Right — hover 비활성화, 콘텐츠 상시 표시 */
  .service-card { cursor: default; }
  .service-card:hover .card-inner { background: none; }
  .service-card:hover .card-default { transform: none; }
  .card-hover-content {
    max-height: none;
    opacity: 1;
    margin-top: 14px;
    overflow: visible;
    display: none;
  }
  .card-link i { display: none; }

  /* Pain */
  .bubble { padding: 20px 28px; }
  .bubble p { font-size: 1.8rem; }
  .bubble.bubble2 p { font-size: 2.0rem; }

  /* Custom */
  .custom-wrap figure { width: 90%; aspect-ratio: 2.5 / 1; border-radius: 0 60px 0 60px; }
  .custom-wrap2 figure { border-radius: 60px 0; }
  .custom-wrap div { padding: 24px 36px; }
  .custom-wrap div .custom-title { font-size: 2.4rem; }
  .custom-wrap div p { font-size: 1.6rem; }

  /* App */
  .app-sec .app-inner { grid-template-columns: 1fr; padding: 60px 32px 420px; border-radius: 36px; }
  .app-right-wrap { padding-left: 0; }
  .app-mock { width: 40%; right: 5%; }
  .app-text-wrap span { display: none; }
  .app-circle-wrap { display: none; }

  /* HP */
  .hp-title-wrap span { font-size: 10rem; }
  .hp-banner {
    margin-top: 42px;
  }
  .hp-banner .slick-slide {
    padding: 0 8px;
  }
  .hp-banner figure {
    border-radius: 12px;
  }
  .hp-project-name {
    left: 7%;
    min-height: 30px;
    max-width: 86%;
    font-size: 1.6rem;
  }

  /* Platform — 스택: 제목 위, 카드 아래 */
  .plat-sec .plat-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .plat-sec .title-wrap h3 { font-size: 4.4rem; }
  .plat-sec .title-wrap p { font-size: 1.6rem; }
  .plat-wrap { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .plat-card { padding: 28px 14px; border-radius: 20px; }
  .plat-card-title { font-size: 1.5rem; }
  .plat-card-sub { font-size: 1.2rem; }
  .plat-icon { width: 52px; height: 52px; }

  /* Contact */
  .contact-sec { padding: 80px 24px; }
  .contact-inner { grid-template-columns: 1fr; gap: 32px; }
  .contact-form-wrapper { padding: 0; }
  .contact-title { font-size: clamp(2.8rem, 5vw, 4.0rem); }
  .contact-subtitle { margin-bottom: 24px; }
  .tab-btn { font-size: 1.6rem; padding: 12px 24px; }

  /* Slick arrows */
  .hp-banner .slick-prev,
  .hp-banner .slick-next { width: 50px; height: 50px; }
  .hp-banner .slick-prev::before,
  .hp-banner .slick-next::before { font-size: 4.0rem; }
  .hp-banner .slick-prev { left: 18%; }
  .hp-banner .slick-next { right: 18%; }
}

/* ── ≤ 768px ── */
@media (max-width: 768px) {
  :root { --nav-h: 60px; }

  /* Title common */
  .title-wrap h3 { font-size: clamp(2.6rem, 5vw, 3.4rem); }
  .title-wrap p { font-size: 1.6rem; }

  /* Mainbox */
  .mainbox { padding: 70px 12px 12px; }
  .mainbox-wrap { border-radius: 16px; }
  .mainbox-inner { padding: 0 16px; }
  .mainbox-label { font-size: 1.6rem; letter-spacing: .1em; margin-bottom: 10px; }
  .mainbox-title { font-size: clamp(2.8rem, 6vw, 3.6rem); }
  .mainbox-cards { padding: 16px 12px; border-radius: 16px; }
  .mainbox-card { padding: 14px 16px; }
  .mainbox-card h3 { font-size: 1.8rem; }
  .mainbox-card p { font-size: 1.4rem; }
  .scroll-down { bottom: 20px; }
  .scroll-down span { font-size: 1.1rem; }

  /* Hero */
  .hero { padding: 70px 12px 12px; }
  .hero-inner { border-radius: 20px; }
  .hero-left { padding: 32px 20px; }
  .hero-left-content { gap: 20px; }
  .hero-title { font-size: clamp(2.8rem, 6vw, 3.6rem); }
  .hero-desc { font-size: 1.6rem; }
  .hero-right { flex-direction: column; }
  .service-card { flex: 0 0 auto; min-height: auto; border-left: none; border-top: 1px solid #ffffff66; }
  .service-card:first-child { border-top: none; }
  .card-inner { padding: 24px 20px; justify-content: center; }
  .card-number { font-size: 1.5rem; }
  .card-title { font-size: 2.0rem; }
  .card-sub { font-size: 1.4rem; }

  /* Pain */
  .pain-section { padding: 60px 16px; }
  .pain-inner { gap: 36px; }
  .bubble-list { gap: 20px; }
  .bubble { padding: 18px 24px; }
  .bubble p { font-size: 1.6rem; white-space: normal; }
  .bubble.bubble2 p { font-size: 1.8rem; }

  /* Custom */
  .custom-sec { padding: 60px 16px; }
  .custom-wrap figure { width: 100%; aspect-ratio: 2 / 1; border-radius: 0 40px 0 40px; }
  .custom-wrap2 figure { border-radius: 40px 0; }
  .custom-wrap div { position: relative; bottom: auto; right: auto; left: auto; padding: 20px 0; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .custom-wrap div .custom-title { font-size: 2.2rem; }
  .custom-wrap div p { font-size: 1.5rem; }
  .custom-wrap2 { margin-top: 32px; }

  /* HP Banner */
  .hp-sec { padding: 28px 0; }
  .hp-title-wrap span { display: none; }
  .hp-title-wrap {
    padding: 0 18px;
  }
  .hp-title-wrap p br {
    display: none;
  }
  .hp-banner {
    margin-top: 32px;
    overflow: hidden;
  }
  .hp-banner .slick-list {
    overflow: visible;
  }
  .hp-banner .slick-slide {
    padding: 0 16px;
    opacity: .28;
    transform: scale(.92);
    box-sizing: border-box;
  }
  .hp-banner .slick-slide.slick-center {
    opacity: 1;
    transform: scale(1);
  }
  .hp-banner figure {
    border-radius: 10px;
    aspect-ratio: 16 / 10;
  }
  .hp-banner figure img {
    object-fit: contain;
    object-position: top center;
  }
  .hp-project-name {
    left: 16px;
    bottom: 10px;
    min-height: 28px;
    max-width: calc(100% - 32px);
    padding: 0 8px;
    border-left-width: 4px;
    color: #111;
    font-size: 1.45rem;
    font-weight: 600;
    background: rgba(255, 255, 255, .84);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .hp-banner .slick-prev,
  .hp-banner .slick-next { display: none !important; }

  /* App */
  .app-sec { padding: 20px 0 80px; margin-bottom: 40px; }
  .app-sec .app-inner { padding: 48px 24px 320px; border-radius: 28px; }
  .app-mock { width: 50%; right: 3%; }
  .app-btn-wrap { margin-top: 30px; gap: 10px; }
  .app-btn-wrap span { font-size: 1.5rem; padding: 8px 18px; }

  /* Platform */
  .plat-sec { padding: 60px 16px; min-height: auto; }
  .plat-sec .title-wrap h3 { font-size: 3.6rem; }
  .plat-sec .title-wrap p { font-size: 1.6rem; }
  .plat-wrap { grid-template-columns: repeat(2, 1fr); gap: 12px; width: 100%; margin-top: 0; }
  .plat-card { padding: 28px 16px; border-radius: 16px; }
  .plat-icon { width: 52px; height: 52px; }
  .plat-card-title { font-size: 1.5rem; }
  .plat-card-sub { font-size: 1.2rem; }

  /* Contact */
  .contact-sec { padding: 60px 16px; }
  .contact-title { font-size: clamp(2.4rem, 5vw, 3.2rem); }
  .contact-subtitle { font-size: 1.6rem; margin-bottom: 20px; }
  .tab-btn { font-size: 1.4rem; padding: 10px 20px; }
  .form-hor { grid-template-columns: 1fr; gap: 20px; }
  .form-group label { font-size: 1.6rem; }
  .form-group input,
  .form-group select,
  .form-group textarea { padding: 14px; font-size: 1.4rem; }
  .feature-btn { font-size: 1.4rem; padding: 10px 20px; }
  .feature-custom-control { grid-template-columns: 1fr; }
  .feature-custom-add { min-height: 44px; font-size: 1.4rem; }
  .form-submit-btn { font-size: 1.8rem; padding: 14px 24px; }
  .form-help { font-size: 1.4rem; }
}

/* ── ≤ 480px ── */
@media (max-width: 480px) {

  /* Mainbox */
  .mainbox { padding: 60px 6px 6px; }
  .mainbox-wrap { border-radius: 14px; }
  .mainbox-inner { padding: 0 10px; }
  .mainbox-label { font-size: 1.4rem; letter-spacing: .08em; margin-bottom: 8px; }
  .mainbox-title { font-size: clamp(2.4rem, 7vw, 3.0rem); }
  .mainbox-cards { padding: 12px 10px; border-radius: 14px; }
  .mainbox-card { padding: 12px 14px; gap: 6px; }
  .mainbox-card h3 { font-size: 1.6rem; }
  .mainbox-card p { font-size: 1.3rem; }
  .mainbox-arrow { font-size: 1.6rem; }
  .scroll-down { bottom: 16px; }
  .scroll-down span { font-size: 1.0rem; }
  .scroll-down-bar { height: 24px; }

  /* Hero */
  .hero { padding: 60px 6px 6px; }
  .hero-inner { border-radius: 14px; }
  .hero-left { padding: 24px 16px; }
  .hero-left-content { gap: 16px; }
  .hero-title { font-size: clamp(2.4rem, 7vw, 3.0rem); }
  .hero-desc { font-size: 1.4rem; }
  .hero-desc br { display: none; }
  .hero-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .btn-primary,
  .btn-secondary { justify-content: center; font-size: 1.4rem; padding: 12px 16px; }
  .card-inner { padding: 18px 14px; }
  .card-title { font-size: 1.8rem; }
  .card-sub { font-size: 1.4rem; }
  .card-number { font-size: 1.4rem; }

  /* Pain */
  .pain-section { padding: 48px 12px; }
  .bubble { padding: 14px 20px; }
  .bubble p { font-size: 1.5rem; }
  .bubble.bubble2 p { font-size: 1.6rem; }

  /* Custom */
  .custom-sec { padding: 48px 12px; }
  .custom-wrap figure { aspect-ratio: 16 / 9; border-radius: 0 24px 0 24px; }
  .custom-wrap2 figure { border-radius: 24px 0; }
  .custom-wrap div .custom-title { font-size: 1.8rem; margin-bottom: 10px; }
  .custom-wrap div p { font-size: 1.4rem; }

  /* HP */
  .hp-sec { padding: 20px 0; }
  .hp-title-wrap {
    padding: 0 14px;
  }
  .hp-banner {
    margin-top: 26px;
  }
  .hp-banner .slick-slide {
    padding: 0 14px;
    transform: scale(.96);
  }
  .hp-banner figure {
    aspect-ratio: 4 / 3;
    border-radius: 8px;
  }
  .hp-project-name {
    left: 10px;
    bottom: 8px;
    min-height: 26px;
    max-width: calc(100% - 20px);
    font-size: 1.3rem;
    line-height: 1.25;
  }

  /* App */
  .app-sec { padding: 16px 0 64px; margin-bottom: 24px; }
  .app-sec .app-inner { padding: 36px 16px 260px; border-radius: 20px; }
  .app-mock { width: 55%; right: 2%; }
  .app-btn-wrap span { font-size: 1.4rem; padding: 8px 14px; }

  /* Platform */
  .plat-sec { padding: 48px 12px; }
  .plat-sec .title-wrap h3 { font-size: 2.8rem; }
  .plat-sec .title-wrap p { font-size: 1.4rem; }
  .plat-wrap { grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 28px; }
  .plat-card { padding: 24px 14px; border-radius: 14px; }
  .plat-icon { width: 44px; height: 44px; }
  .plat-card-title { font-size: 1.4rem; margin-top: 6px; }
  .plat-card-sub { font-size: 1.4rem; }

  /* Contact */
  .contact-sec { padding: 48px 12px; }
  .contact-title { font-size: clamp(2.2rem, 6vw, 2.8rem); }
  .contact-subtitle { font-size: 1.4rem; }
  .contact-tabs { max-width: 100%; }
  .tab-btn { font-size: 1.4rem; padding: 10px 16px; }
  .feature-btn { font-size: 1.4rem; padding: 8px 16px; }
  .form-submit-btn { font-size: 1.6rem; }
  .form-help { font-size: 1.4rem; }
}


/* ============================================================
   HERO SPLIT — RESPONSIVE
   ============================================================ */

/* ── ≤ 1280px ── */
@media (max-width: 1280px) {
  .hs-pf-content { max-width: 500px; padding: 0 30px; }
  .hs-pf-tag { font-size: 2rem; }
  .hs-pf-desc { font-size: 2rem; }
  .hs-pf-btn { font-size: 1.7rem; padding: 11px 24px; }
  .hs-pf-more { font-size: 1.7rem; }
  .hs-splitf-circle { width: 130px; height: 130px; }
  /* .hs-splitf-circle-text { font-size: 17px; } */
}

/* ── ≤ 1024px ── */
@media (max-width: 1024px) {
  .hs-splitf { min-height: 500px; }
  .hs-pf-content { max-width: 420px; padding: 0 24px; }
  .hs-pf-tag { font-size: 1.6rem; margin-bottom: 8px; }
  .hs-pf-title { font-size: clamp(2.6rem, 4vw, 4rem); }
  .hs-pf-desc { font-size: 1.7rem; margin-top: 16px; }
  .hs-pf-btn { font-size: 1.5rem; padding: 10px 22px; }
  .hs-pf-more { font-size: 1.5rem; padding: 7px 18px; }
  .hs-pf-actions { gap: 10px; margin-top: 20px; }
  .hs-pf-left { padding-left: 8%; }
  .hs-pf-right { padding-right: 8%; }
  .hs-splitf-inner.hover-left .hs-pf-left { padding-left: 25%; }
  .hs-splitf-inner.hover-right .hs-pf-right { padding-right: 25%; }
  .hs-splitf-circle { width: 110px; height: 110px; }
  /* .hs-splitf-circle-text { font-size: 14px; } */
}

/* ── ≤ 768px ── */
@media (max-width: 768px) {
  .hs-splitf { height: 100vh; min-height: 600px; }
  .hs-splitf-inner { display: flex; flex-direction: column; overflow: hidden; }
  .hs-splitf-circle { width: 100px; height: 100px; }
  /* .hs-splitf-circle-text { font-size: 14px; } */

  /* 사선 해제 → 세로 2단 */
  .hs-bgf { display: none; }
  .hs-pf { position: relative; width: 100%; clip-path: none !important; justify-content: center; padding: 48px 24px !important; flex: 1; transition: flex .4s ease; }
  .hs-pf-left { background: rgba(10,10,24,.85); }
  .hs-pf-right { background: linear-gradient(180deg, #5324bc99, #1d389899); }

  .hs-pf-content { max-width: 100%; text-align: center; padding: 0; opacity: 1 !important; }
  .hs-pf-tag { font-size: 1.4rem; }
  .hs-pf-title { font-size: clamp(2.4rem, 5vw, 3.4rem); }
  .hs-pf-desc { font-size: 1.6rem; margin-top: 14px; }
  .hs-pf-btn { font-size: 1.4rem; padding: 10px 20px; }
  .hs-pf-more { font-size: 1.4rem; padding: 7px 16px; }
  .hs-pf-actions { margin-top: 18px; }

  /* 기본: 디테일 숨김, 자세히보기 보임 */
  .hs-pf-detail { opacity: 0; max-height: 0; }

  /* 탭 확장: 70:30 비율 + 디테일 보이고 자세히보기 숨김 */
  .hs-splitf-inner.hover-left .hs-pf-left { flex: 2.33; }
  .hs-splitf-inner.hover-left .hs-pf-right { flex: 1; }
  .hs-splitf-inner.hover-right .hs-pf-right { flex: 2.33; }
  .hs-splitf-inner.hover-right .hs-pf-left { flex: 1; }

  .hs-splitf-inner.hover-left .hs-pf-left .hs-pf-detail { opacity: 1 !important; max-height: 300px !important; }
  .hs-splitf-inner.hover-right .hs-pf-right .hs-pf-detail { opacity: 1 !important; max-height: 300px !important; }

  .hs-splitf-inner.hover-left .hs-pf-left .hs-pf-more,
  .hs-splitf-inner.hover-right .hs-pf-right .hs-pf-more {
    max-height: 0; margin-top: 0; padding-top: 0; padding-bottom: 0; opacity: 0; pointer-events: none;
  }

  /* 반대쪽 패널은 그대로 유지 */
  .hs-splitf-inner.hover-left .hs-pf-right .hs-pf-content,
  .hs-splitf-inner.hover-right .hs-pf-left .hs-pf-content { opacity: 1; }
  .hs-splitf-inner.hover-left .hs-pf-right .hs-pf-more,
  .hs-splitf-inner.hover-right .hs-pf-left .hs-pf-more {
    max-height: 50px; margin-top: 20px; padding: 7px 16px; opacity: 1; pointer-events: auto;
  }
}

/* ── ≤ 480px ── */
@media (max-width: 480px) {
  .hs-pf { padding: 40px 16px !important; }
  .hs-pf-tag { font-size: 1.3rem; }
  .hs-pf-title { font-size: clamp(2rem, 6vw, 2.8rem); }
  .hs-pf-desc { font-size: 1.4rem; }
  .hs-pf-desc br { display: none; }
  .hs-pf-btn { font-size: 1.3rem; padding: 9px 18px; }
  .hs-pf-more { font-size: 1.3rem; padding: 6px 14px; }
  .hs-pf-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .hs-splitf-circle { width: 80px; height: 80px; }
  .hs-splitf-circle-text { font-size: 11px; }
}
