/* JAMBAEKEE 中文站 — 한국 자사몰 무드(흰 갤러리·검정 워드마크) 유지
   외부 폰트/CDN 없음: 중국 접속에서 막히거나 느린 리소스를 쓰지 않는다 */
:root{
  --bg:#ffffff;
  --tile:#f2f3f5;          /* 제품 타일 연회색 */
  --ink:#1a1a1a;
  --ink-2:#3c3a39;         /* 한국몰 본문색 */
  --muted:#8a8f98;
  --line:#e4e6ea;
  --purple:#6b4cff;        /* 멤버십·SIGNATURE */
  --orange:#ff6a13;        /* zerohack */
  --sale:#ff0000;          /* 할인율 전용 */
  --ease:cubic-bezier(.22,.8,.24,1);
  --font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gutter:clamp(16px,4vw,40px);
  --maxw:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink-2);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.eyebrow{font-size:12px;letter-spacing:.18em;color:var(--muted);font-weight:600;text-transform:uppercase}
.note{margin-top:20px;font-size:12px;color:var(--muted)}
h1,h2,h3{color:var(--ink);font-weight:700;letter-spacing:-.01em}
h2{font-size:clamp(24px,3.2vw,36px);line-height:1.3;margin-top:8px}
.section-head{margin-bottom:40px}
.section-sub{margin-top:10px;color:var(--muted)}

/* ---------- 공통 등장 모션 ---------- */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease) var(--d,0s),transform .9s var(--ease) var(--d,0s)}
[data-reveal].in{opacity:1;transform:none}

/* ---------- 버튼 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 28px;border-radius:4px;font-weight:600;font-size:15px;transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;position:relative;overflow:hidden}
.btn--sm{height:38px;padding:0 16px;font-size:13px}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{transform:translateY(-2px)}
.btn--line{border:1px solid #dbdee2;color:var(--ink);background:#fff}
.btn--line:hover{border-color:var(--ink)}
.shimmer::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);animation:shimmer 3.6s var(--ease) infinite}
@keyframes shimmer{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* ---------- 상단 마퀴 ---------- */
.topbar{background:var(--ink);color:#fff;font-size:12px;letter-spacing:.08em;height:34px;overflow:hidden}
.marquee{height:100%;display:flex;align-items:center}
.marquee__track{display:flex;gap:56px;white-space:nowrap;animation:marquee 28s linear infinite;padding-left:56px}
.marquee__track span::before{content:"●";font-size:6px;vertical-align:middle;margin-right:12px;opacity:.5}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- 헤더 ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.header.is-scrolled{border-color:var(--line)}
.header__inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);height:72px;display:flex;align-items:center;gap:32px;transition:height .35s var(--ease)}
.header.is-scrolled .header__inner{height:60px}
.logo img{width:150px;height:auto}
.nav{display:flex;gap:28px;margin:0 auto;font-size:14px;font-weight:600;color:var(--ink)}
.nav a{position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.header__right{display:flex;align-items:center;gap:16px}
.lang{font-size:13px;color:var(--muted);display:flex;gap:6px}
.lang .is-on{color:var(--ink);font-weight:600}
.menu-btn{display:none;width:36px;height:36px;position:relative}
.menu-btn span{position:absolute;left:8px;right:8px;height:2px;background:var(--ink);transition:transform .3s var(--ease)}
.menu-btn span:first-child{top:13px}.menu-btn span:last-child{top:21px}
.menu-open .menu-btn span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-open .menu-btn span:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ---------- HERO ---------- */
.hero{background:linear-gradient(#fff 0,#fff 45%,#eaecee 45%);padding:72px 0 64px;overflow:hidden}
.hero__copy{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.hero__title{font-size:clamp(32px,5.2vw,64px);line-height:1.18;margin:16px 0 18px}
/* 지금 비추는 용기의 맛: 번호 배지 + 맛 이름(위로 넘어가는 전환) */
.hero__flavor{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:clamp(20px,2.4vw,30px);font-weight:700;color:var(--ink)}
.hero__chip{flex-shrink:0;font-size:.5em;letter-spacing:.06em;padding:.35em .8em;border-radius:999px;color:#fff;background:var(--accent,var(--ink));transition:background .5s;font-variant-numeric:tabular-nums}
.hero__fname{position:relative;display:inline-block;height:1.3em;min-width:6em;overflow:hidden}
.hero__fname::after{content:"";position:absolute;left:0;bottom:.05em;width:2.2em;height:.1em;border-radius:.05em;background:var(--accent,var(--ink));transition:background .5s}
.hero__fname span{position:absolute;left:0;top:0;white-space:nowrap;line-height:1.3;transition:transform .5s var(--ease),opacity .5s var(--ease)}
.hero__fname span.enter{transform:translateY(100%);opacity:0;transition:none}
.hero__fname span.out{transform:translateY(-100%);opacity:0}
.hero__sub{font-size:clamp(15px,1.5vw,18px);color:var(--ink-2)}
.hero__cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}

.hero__stage{margin-top:56px;position:relative}
.hero__strip{position:relative;width:min(1400px,112vw);margin:0 auto;left:50%;transform:translateX(calc(-50% + var(--px,0px)));transition:transform .2s linear}
.hero__strip img{width:100%;clip-path:inset(0 100% 0 0);transition:clip-path 1.6s var(--ease) .3s;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.hero.ready .hero__strip img{clip-path:inset(0 0 0 0)}
.hero__spot{position:absolute;top:13%;bottom:5%;width:8.4%;left:calc(var(--x,8.28%) - 4.2%);border-radius:18px;box-shadow:0 0 0 2px var(--accent,var(--ink)) inset;opacity:0;transition:left .7s var(--ease),box-shadow .5s,opacity .5s}
.hero.ready .hero__spot{opacity:1;transition-delay:0s,0s,1.8s}
.hero__hits{position:absolute;inset:0}
.hero__hits button{position:absolute;top:0;bottom:0;width:8.4%;transform:translateX(-50%)}
.hero__rail{position:relative;width:min(520px,80vw);height:2px;background:var(--line);margin:32px auto 0;border-radius:2px}
.hero__dot{position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;background:var(--accent,var(--ink));transform:translateX(-50%);transition:left .7s var(--ease),background .5s}
.hero__label{text-align:center;margin-top:16px;font-size:14px;color:var(--ink-2)}
.hero__label i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--accent,var(--ink));margin-right:8px;vertical-align:0;transition:background .5s}
.hero__label b{color:var(--ink)}

/* ---------- 숫자 블록 ---------- */
.stats{padding:88px 0;border-bottom:1px solid var(--line)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat{padding:8px 0 8px 20px;border-left:1px solid var(--line)}
.stat__num{font-size:clamp(30px,4vw,48px);font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.stat__num small{font-size:14px;font-weight:500;color:var(--muted);margin-left:4px}
.stat__name{margin-top:8px;font-size:14px}

/* ---------- 제품 ---------- */
.products{padding:110px 0}
.tabs{position:relative;display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:36px;overflow-x:auto;scrollbar-width:none}
.tab{padding:12px 18px;font-size:15px;font-weight:600;color:var(--muted);white-space:nowrap;transition:color .3s}
.tab.is-on{color:var(--ink)}
.tabs__ink{position:absolute;bottom:-1px;height:2px;background:var(--ink);transition:left .45s var(--ease),width .45s var(--ease)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 20px}
.card{transition:opacity .45s var(--ease),transform .45s var(--ease)}
.card.is-hidden{display:none}
.card.is-leaving{opacity:0;transform:scale(.96)}
.card.is-entering{opacity:0;transform:translateY(18px)}
.card__img{display:block;background:var(--tile);aspect-ratio:1;overflow:hidden;border-radius:2px}
.card__img--warm{background:#ff7a1f}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.card:hover .card__img img{transform:scale(1.06) translateY(-2%)}
.card__body{padding-top:14px}
.card__tags{display:flex;gap:6px;margin-bottom:6px}
.card__tags em{font-style:normal;font-size:11px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2)}
.card__tags em.sig{background:var(--purple);border-color:var(--purple);color:#fff}
.card__tags em.zh{background:var(--orange);border-color:var(--orange);color:#fff}
.card h3{font-size:15px;font-weight:600;line-height:1.45}
.card__go{display:inline-block;margin-top:8px;font-size:13px;color:var(--muted);transition:color .3s,transform .3s var(--ease)}
.card:hover .card__go{color:var(--ink);transform:translateX(4px)}
.card__soon{display:inline-block;margin-top:8px;font-size:12px;color:var(--orange)}

/* ---------- 맛 선택기 ---------- */
.flavors{padding:100px 0;background:var(--tile)}
.flavor-grid{display:grid;grid-template-columns:repeat(11,1fr);gap:10px}
.fl{aspect-ratio:3/4;background:#fff;border-radius:10px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(24px) scale(.96);transition:opacity .6s var(--ease) var(--d,0s),transform .6s var(--ease) var(--d,0s),box-shadow .35s}
.flavor-grid.in .fl{opacity:1;transform:none}
.fl b{font-size:clamp(22px,3vw,40px);color:var(--ink);line-height:1;transition:transform .45s var(--ease),color .3s}
.fl small{font-size:10px;letter-spacing:.1em;color:var(--muted);margin-top:6px}
.fl::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22%;background:var(--c);transform:translateY(70%);transition:transform .45s var(--ease)}
.fl:hover,.fl.is-on{box-shadow:0 12px 30px rgba(0,0,0,.08)}
.fl:hover::after,.fl.is-on::after{transform:none}
.fl:hover b,.fl.is-on b{transform:translateY(-10px)}

/* ---------- 원산지 경로 ---------- */
.origin{padding:110px 0}
.route{position:relative;margin-bottom:56px}
.route__svg{width:100%;height:auto;overflow:visible}
.route__base{fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:4 8}
.route__line{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--ease) .2s}
.route.in .route__line{stroke-dashoffset:0}
.route__pin{fill:#fff;stroke:var(--ink);stroke-width:2.5}
.route__pin--end{fill:var(--ink)}
.route__pulse{fill:none;stroke:var(--ink);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{from{transform:scale(1);opacity:.6}to{transform:scale(3.4);opacity:0}}
.route__runner{fill:var(--purple);opacity:0;transition:opacity .6s 2.4s}
.route.in .route__runner{opacity:1}
.route__ends{display:flex;justify-content:space-between;margin-top:-6px}
.route__ends p{display:flex;flex-direction:column;font-size:13px;color:var(--muted)}
.route__ends p:last-child{text-align:right}
.route__ends b{color:var(--ink);font-size:16px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.step{border-top:2px solid var(--ink);padding-top:20px}
.step__no{font-size:12px;color:var(--muted);letter-spacing:.1em}
.step h3{font-size:18px;margin:6px 0 8px}
.step p{font-size:14px}

/* ---------- 스토리 ---------- */
.story{position:relative;padding:150px 0;background:#ececec;overflow:hidden;text-align:center}
.story__light{position:absolute;inset:-10%;background:url(../img/story-bg.webp) center/cover no-repeat;opacity:.9;animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(-2%,0,0) scale(1.05)}to{transform:translate3d(2%,-2%,0) scale(1.1)}}
.story__inner{position:relative}
.story__title{font-size:clamp(48px,9vw,120px);letter-spacing:.06em;margin:14px 0 4px;line-height:1.1}
.story__title span{display:inline-block;opacity:0;transform:translateY(40px) rotate(4deg);filter:blur(6px);transition:all 1s var(--ease)}
.story__title.in span{opacity:1;transform:none;filter:none}
.story__en{font-size:18px;letter-spacing:.3em;color:var(--muted);text-transform:uppercase}
.story__text{margin-top:28px;font-size:16px;line-height:2;color:var(--ink-2)}

/* ---------- 후기 ---------- */
.reviews{padding:110px 0}
.tag-sample{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;background:#fff1f0;color:#d4380d;margin-right:6px}
.masonry{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}
.note-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s}
.note-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.08)}
.note-card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--tile)}
.note-card--tall img{aspect-ratio:3/4.6}
.note-card figcaption{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}
.note-card b{font-size:14px;color:var(--ink)}
.note-card span{font-size:12px;color:var(--muted)}

/* ---------- 구매처 ---------- */
.channels{padding:100px 0 120px;background:var(--tile)}
.ch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ch{background:#fff;border-radius:6px;padding:32px 28px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;transition:transform .4s var(--ease)}
.ch::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease)}
.ch:hover{transform:translateY(-4px)}
.ch:hover::before{transform:scaleY(1)}
.ch b{font-size:22px;color:var(--ink)}
.ch span{font-size:14px}
.ch em{font-style:normal;font-size:12px;color:var(--muted);margin-top:16px}

/* ---------- 푸터 ---------- */
.footer{padding:56px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.footer__inner{display:flex;flex-direction:column;gap:14px}
.footer__legal{color:#b0b4ba}

/* ---------- 위챗 플로팅 ---------- */
.float-wx{position:fixed;right:20px;bottom:24px;z-index:60;width:56px;height:56px;border-radius:50%;background:#07c160;color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(7,193,96,.35);transition:transform .3s var(--ease)}
.float-wx:hover{transform:scale(1.06)}
.float-wx__pulse{position:absolute;inset:0;border-radius:50%;border:2px solid #07c160;animation:pulse 2.4s ease-out infinite}
.wx-pop{position:fixed;right:20px;bottom:92px;z-index:60;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center;font-size:12px;box-shadow:0 18px 40px rgba(0,0,0,.12);opacity:0;transform:translateY(10px) scale(.96);pointer-events:none;transition:all .35s var(--ease)}
.wx-pop.is-open{opacity:1;transform:none;pointer-events:auto}
.wx-pop__qr{width:128px;height:128px;background:var(--tile);display:grid;place-items:center;color:var(--muted);margin-bottom:8px;line-height:1.4}

/* ---------- 반응형 ---------- */
@media (max-width:1024px){
  .grid{grid-template-columns:repeat(3,1fr)}
  .nav{gap:18px}
}
@media (max-width:860px){
  .nav{position:fixed;inset:106px 0 auto 0;flex-direction:column;gap:0;background:#fff;padding:8px var(--gutter) 20px;border-bottom:1px solid var(--line);transform:translateY(-12px);opacity:0;pointer-events:none;transition:all .35s var(--ease)}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .menu-open .nav{transform:none;opacity:1;pointer-events:auto}
  .menu-btn{display:block}
  .header__right{margin-left:auto}
  .lang{display:none}
  .header__right .btn{display:none}
  .stats__grid{grid-template-columns:repeat(2,1fr);row-gap:36px}
  .grid{grid-template-columns:repeat(2,1fr);gap:24px 12px}
  .flavor-grid{grid-template-columns:repeat(6,1fr)}
  .steps,.ch-grid{grid-template-columns:1fr}
  .masonry{grid-template-columns:repeat(2,1fr)}
  .hero__strip{width:180vw}
  .logo img{width:120px}
}
@media (max-width:480px){
  .flavor-grid{grid-template-columns:repeat(4,1fr)}
  .story__text br{display:none}
  .route__ends b{font-size:14px}
}

/* 모션 최소화 설정 존중 */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-reveal],.fl,.story__title span{opacity:1!important;transform:none!important;filter:none!important}
  .hero__strip img{clip-path:none!important}
  .route__line{stroke-dashoffset:0!important}
}

/* ===================== 모바일 최적화 ===================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.br-mo{display:none}
/* 카드 전체를 누를 수 있게 (모바일 탭 영역 확대) */
.card{position:relative}
.card__go::after{content:"";position:absolute;inset:0}
.card .card__img,.card h3 a{position:relative;z-index:1}
/* 터치 기기에서는 hover 이동 효과를 끈다 (탭 후 들뜬 상태로 남는 문제) */
@media (hover:none){
  .btn--dark:hover,.ch:hover,.note-card:hover,.float-wx:hover{transform:none}
  .card:hover .card__img img{transform:none}
  .card:hover .card__go{transform:none}
}
@media (max-width:860px){
  .menu-btn{width:44px;height:44px}
  .menu-btn span{left:11px;right:11px}
  .menu-btn span:first-child{top:17px}.menu-btn span:last-child{top:25px}
  .nav{top:var(--nav-top,106px);inset:var(--nav-top,106px) 0 auto 0;max-height:calc(100vh - var(--nav-top,106px));overflow-y:auto}
  .nav a{padding:16px 0;font-size:16px}
}
@media (max-width:640px){
  body{font-size:15px}
  .br-mo{display:inline}
  .hide-mo{display:none}
  .card__tags em,.note,.stat__num small,.fl small,.route__ends p,.footer{font-size:12px}
  .card h3{font-size:14px}
  .card__go{font-size:13px;padding:6px 0}
  .eyebrow{font-size:11px;letter-spacing:.14em}
  .section-head{margin-bottom:28px}
  /* 히어로: 배경 분할 대신 무대 영역에만 회색을 깔아 버튼과 겹치지 않게 */
  .hero{background:#fff;padding:36px 0 0}
  /* 모바일 제목: 크기는 줄이고 더 굵게. PingFang은 600이 최대라 얇은 외곽선으로 두께를 보탠다 */
  .hero__title{font-size:clamp(22px,6.2vw,26px);line-height:1.35;margin:10px 0 12px;font-weight:900;-webkit-text-stroke:.5px currentColor;letter-spacing:-.01em}
  .hero__title .br-mo{display:none}
  .hero__flavor{font-size:20px;gap:10px;margin-bottom:14px}
  .hero__cta .btn{flex:1;height:50px;padding:0 12px}
  .hero__stage{margin-top:36px;background:#eaecee;padding:28px 0 32px}
  .hero__rail{margin-top:22px}
  .stats{padding:56px 0}
  .stat{padding-left:14px}
  .products,.origin,.reviews{padding:72px 0}
  .flavors,.channels{padding:64px 0}
  .story{padding:96px 0}
  .story__text{font-size:15px}
  .ch{padding:24px 20px}
  .float-wx{width:48px;height:48px;right:14px;bottom:calc(16px + env(safe-area-inset-bottom))}
  .float-wx__pulse{animation-duration:3.2s}
  .wx-pop{right:14px;bottom:calc(76px + env(safe-area-inset-bottom))}
  .footer{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
}
@media (max-width:360px){
  .hero__cta{flex-direction:column}
  .hero__cta .btn{flex:none;width:100%}
  .grid{gap:20px 10px}
}
.tag-sample{font-size:12px}
@keyframes pulseSm{from{transform:scale(1);opacity:.5}to{transform:scale(1.7);opacity:0}}
@media (max-width:640px){.float-wx__pulse{animation-name:pulseSm}}
.nw{white-space:nowrap;display:inline-block}
/* 상품 카드 높이 통일: 이름은 2줄 높이로 고정, 태그는 한 줄, 링크는 카드 맨 아래 */
.card{display:flex;flex-direction:column}
.card__body{display:flex;flex-direction:column;flex:1}
.card__tags{flex-wrap:nowrap;overflow:hidden}
.card__tags em{white-space:nowrap;flex-shrink:0}
.card h3{line-height:1.45;min-height:2.9em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card__go,.card__soon{margin-top:auto;align-self:flex-start}
