/* Cre.M 공식 사이트 — 화이트 클린 × Wanted Sans (시안 A-6 확정안 기반) */

/* 폰트는 assets/fonts/wanted-sans-variable.css (유니코드 구간 분할 92청크)에서 로드 — HTML에서 이 파일보다 먼저 링크 */

:root{
  --green:#0B6B4F; --green-deep:#084F3B; --green-tint:#EEF5F1;
  --ink:#121714; --ink-2:#4E5A54; --ink-3:#8A948E;
  --bg:#FFFFFF; --bg-2:#FAFBFA; --line:#E7EAE7;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Wanted Sans Variable","Wanted Sans","Pretendard",-apple-system,"Segoe UI","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:1100px;margin:0 auto;padding:0 32px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.24em;color:var(--green);text-transform:uppercase}
h2{font-size:clamp(26px,3.8vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1.3;text-wrap:balance;margin:12px 0 14px}
.sub{color:var(--ink-2);max-width:600px;font-size:15.5px}
/* 한글 줄바꿈 — 기본값(word-break:normal)은 어절 중간에서도 끊어서 "주도적으로"가 "주 / 도적으로"로 쪼개짐 */
h1,h2,h3,.sub,.cul em,.wl-step b,.fstep b,.biz h3,.biz .gives,.biz-syn,.dv-c b,.dv-c span,.dv-core span{word-break:keep-all}
section{padding:96px 0}
.num{font-variant-numeric:tabular-nums}
a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* nav */
nav{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:50}
.nav-in{display:flex;align-items:center;gap:30px;height:68px}
.logo{font-weight:900;font-size:20px;letter-spacing:-.02em;color:var(--ink);text-decoration:none;white-space:nowrap}
.logo i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-left:3px}
.nav-links{display:flex;gap:26px;font-size:14px;color:var(--ink-2)}
.nav-links a{text-decoration:none;color:inherit}
.nav-links a:hover{color:var(--ink)}
.nav-cta{margin-left:auto;display:flex;gap:10px}
.btn{display:inline-block;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:700;white-space:nowrap;
  text-decoration:none;border:1px solid var(--ink);color:var(--ink);transition:.15s;background:transparent}
.btn:hover{background:var(--ink);color:#fff}
.btn.fill{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.fill:hover{background:var(--green-deep);border-color:var(--green-deep)}
.btn.green{border-color:var(--green);color:var(--green)}
.btn.green:hover{background:var(--green);color:#fff}
/* 언어 전환(KO/EN): 국기 + 세그먼트 토글 — 두 언어가 항상 같이 보이게 */
.lang-seg{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.lang-seg a{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink-2);text-decoration:none;line-height:1;transition:.15s}
.lang-seg a:hover{color:var(--ink);background:var(--bg-2)}
.lang-seg a.on{background:var(--ink);color:#fff;pointer-events:none}
.lang-seg .flag{width:16px;height:11px;border-radius:2px;flex-shrink:0;background-size:cover;background-position:center;box-shadow:0 0 0 .5px rgba(0,0,0,.15)}
.lang-seg .flag.kr{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Crect width='24' height='16' fill='%23fff'/%3E%3Cg transform='translate(12 8) rotate(-33.7)'%3E%3Ccircle r='4' fill='%230047A0'/%3E%3Cpath d='M-4 0a4 4 0 0 1 8 0 2 2 0 0 1-4 0 2 2 0 0 0-4 0z' fill='%23CD2E3A'/%3E%3C/g%3E%3Cg stroke='%23000' stroke-width='.9'%3E%3Cg transform='translate(4.6 3.1) rotate(-33.7)'%3E%3Cpath d='M-1.7-1.1h3.4M-1.7 0h3.4M-1.7 1.1h3.4'/%3E%3C/g%3E%3Cg transform='translate(19.4 12.9) rotate(-33.7)'%3E%3Cpath d='M-1.7-1.1h3.4M-1.7 0h3.4M-1.7 1.1h3.4'/%3E%3C/g%3E%3Cg transform='translate(19.4 3.1) rotate(33.7)'%3E%3Cpath d='M-1.7-1.1h3.4M-1.7 0h3.4M-1.7 1.1h3.4'/%3E%3C/g%3E%3Cg transform='translate(4.6 12.9) rotate(33.7)'%3E%3Cpath d='M-1.7-1.1h3.4M-1.7 0h3.4M-1.7 1.1h3.4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.lang-seg .flag.us{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Crect width='24' height='16' fill='%23B22234'/%3E%3Cpath stroke='%23fff' stroke-width='1.23' d='M0 1.85h24M0 4.31h24M0 6.77h24M0 9.23h24M0 11.69h24M0 14.15h24'/%3E%3Crect width='9.6' height='8.6' fill='%233C3B6E'/%3E%3C/svg%3E")}

/* hero */
.hero{padding:110px 0 96px;position:relative;overflow:hidden;background:linear-gradient(160deg,#0A5A43 0%,#06412F 100%);color:#EAF5F0}
.hero::before{content:"";position:absolute;right:-200px;top:-260px;width:720px;height:720px;border-radius:50%;
  background:radial-gradient(circle at 45% 45%,rgba(143,227,201,.22) 0%,transparent 70%);pointer-events:none}
.hero::after{content:"";position:absolute;left:4%;bottom:40px;width:180px;height:180px;pointer-events:none;opacity:.35;
  background-image:radial-gradient(#8FE3C9 1.3px,transparent 1.3px);background-size:22px 22px}
.hero .wrap{position:relative}
.hero .eyebrow{color:#7FD9BD}
.hero .eyebrow-big{font-size:clamp(16px,1.8vw,24px);font-weight:900;letter-spacing:.22em;text-transform:uppercase;
  color:#8FE3C9;display:flex;align-items:center;gap:14px}
.hero .eyebrow-big::before{content:"";width:38px;height:2.5px;background:#8FE3C9;border-radius:2px;flex-shrink:0}
/* 영문 카피 접힘 루프 — WE CREATE THE MARKET → CRE.M (이름 유래를 보여주는 상시 이펙트) */
/* .ty 래퍼가 하나의 flex 아이템 — 없으면 flex gap(14px)이 글자 조각 사이마다 끼어 띄어쓰기처럼 보임 */
.eyebrow-big .ty{display:inline-block;white-space:nowrap}
.eyebrow-big .ty span{display:inline-block;white-space:pre;overflow:hidden;vertical-align:bottom}
.eyebrow-big .dot{max-width:0;opacity:0}
@media (prefers-reduced-motion:no-preference){
  /* 6초 주기: 0~32% 전체 문구 → 44~74% CRE.M → 86%~ 복귀 */
  .eyebrow-big .f0{animation:tyf0 6s ease-in-out infinite}
  .eyebrow-big .f1{animation:tyf1 6s ease-in-out infinite}
  .eyebrow-big .f2{animation:tyf2 6s ease-in-out infinite}
  .eyebrow-big .dot{animation:tydot 6s ease-in-out infinite}
  .eyebrow-big .fx{animation:tyfx 6s ease-in-out infinite}
  .eyebrow-big .c{animation:tyfx 6s ease-in-out infinite,tytight 6s ease-in-out infinite}
  @keyframes tyf0{0%,32%{max-width:4em;opacity:1}44%,74%{max-width:0;opacity:0}86%,100%{max-width:4em;opacity:1}}
  @keyframes tyf1{0%,32%{max-width:12em;opacity:1}44%,74%{max-width:0;opacity:0}86%,100%{max-width:12em;opacity:1}}
  @keyframes tyf2{0%,32%{max-width:8em;opacity:1}44%,74%{max-width:0;opacity:0}86%,100%{max-width:8em;opacity:1}}
  /* 점은 접힌 동안만 나타나고, 앞뒤 간격을 로고처럼 타이트하게 당김 */
  @keyframes tydot{0%,34%{max-width:0;opacity:0;margin-right:0}44%,74%{max-width:1em;opacity:1;margin-right:-.21em}84%,100%{max-width:0;opacity:0;margin-right:0}}
  @keyframes tytight{0%,34%{margin-right:0}44%,74%{margin-right:-.21em}84%,100%{margin-right:0}}
  /* 접힌 CRE.M은 화이트로 반짝 강조 (그림자는 overflow에 각지게 잘려 미사용) */
  @keyframes tyfx{0%,34%{color:#8FE3C9}44%,74%{color:#fff}84%,100%{color:#8FE3C9}}
}
/* 오로라 이펙트 — 딥그린 배경 위에 떠다니는 민트 광원 */
.hero-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-fx i{position:absolute;border-radius:50%;filter:blur(70px);mix-blend-mode:screen}
.hero-fx i:nth-child(1){width:440px;height:440px;background:radial-gradient(circle,#17A97B 0%,transparent 65%);top:-90px;left:-130px;opacity:.55}
.hero-fx i:nth-child(2){width:540px;height:540px;background:radial-gradient(circle,#8FE3C9 0%,transparent 62%);bottom:-220px;right:6%;opacity:.3}
.hero-fx i:nth-child(3){width:300px;height:300px;background:radial-gradient(circle,#2ED9A0 0%,transparent 60%);top:28%;left:36%;opacity:.22}
@media (prefers-reduced-motion:no-preference){
  .hero-fx i:nth-child(1){animation:orb1 16s ease-in-out infinite}
  .hero-fx i:nth-child(2){animation:orb2 20s ease-in-out infinite}
  .hero-fx i:nth-child(3){animation:orb3 13s ease-in-out infinite}
  @keyframes orb1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(100px,60px) scale(1.18)}}
  @keyframes orb2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-80px,-70px) scale(1.12)}}
  @keyframes orb3{0%,100%{transform:translate(0,0) scale(1);opacity:.22}50%{transform:translate(70px,-50px) scale(1.3);opacity:.34}}
}
@media (max-width:880px){
  .hero-fx i{filter:blur(46px)}
  /* 접힘 카피가 화면 폭을 넘치면 iOS가 페이지 전체를 재배열함 — 폭에 여유 있게 축소 */
  .hero .eyebrow-big{font-size:13px;gap:10px}
  .hero .eyebrow-big::before{width:24px}
}
body{overflow-x:clip}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(38px,5.6vw,62px);font-weight:900;letter-spacing:-.035em;line-height:1.14;text-wrap:balance;color:#fff}
.hero h1 em{font-style:normal;color:#8FE3C9}
.hero p.lead{margin-top:24px;font-size:17px;color:#B9D8CB;max-width:560px}
.domain-pills{margin-top:26px;display:flex;gap:10px;flex-wrap:wrap}
.pill{font-size:13.5px;font-weight:700;border:1px solid rgba(255,255,255,.4);color:#DFF2EA;border-radius:999px;
  padding:9px 20px;text-decoration:none;transition:.15s;white-space:nowrap}
.pill.on,.pill:hover{background:#fff;color:#06412F;border-color:#fff}
.hero .cta-row{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}
.hero-visual{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.hero-visual img{width:100%;aspect-ratio:3/4.2;object-fit:cover;border-radius:16px;display:block;
  border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 44px rgba(0,0,0,.28)}
.hero-visual img:nth-child(2){transform:translateY(34px)}
.hero-visual img:nth-child(3){transform:translateY(-10px)}
@media (max-width:880px){
  .hero{padding:80px 0 64px}
  .hero::after{display:none}
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero-visual{gap:10px}
  .hero-visual img{border-radius:12px}
  .hero-visual img:nth-child(2){transform:translateY(18px)}
  .hero-visual img:nth-child(3){transform:none}
}
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s ease}
  .reveal.on{opacity:1;transform:none}
}

/* stat band */
.statband{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
.statband .in{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
/* 각 칸 가운데 정렬 — 좌측 정렬 시 칸마다 우측 여백이 제각각이라 지저분해 보임 */
.stat{padding:34px 20px;border-left:1px solid var(--line);text-align:center}
.stat:first-child{border-left:none}
/* 통계 숫자: 프로포셔널 폭(tabular '1' 여백 정렬 문제 방지) + 절대 줄바꿈 금지 — "3.5억 → 150억"이 접히면 4열 높이가 어긋남 */
.stat b{display:block;font-size:clamp(22px,2.6vw,32px);font-weight:900;letter-spacing:-.025em;font-variant-numeric:proportional-nums;white-space:nowrap}
.stat b em{font-style:normal;color:var(--green)}
.stat span{font-size:13px;color:var(--ink-3)}

/* milestones */
.miles{list-style:none;margin-top:40px;border-top:1px solid var(--line)}
.miles li{display:grid;grid-template-columns:110px 1fr;gap:24px;padding:20px 4px;border-bottom:1px solid var(--line);align-items:baseline}
.miles b{font-size:14px;font-weight:800;color:var(--green);letter-spacing:.02em}
.miles p{font-size:15.5px}
.miles p strong{font-weight:800}

/* business — 네 엔진을 하나의 링이 감싸고 빛이 계속 한 바퀴 돌며 "맞물려 돌아간다"를 보여줌.
   부유 · 회전 링 · 순차 글로우는 히어로/궤도/성장루프에서 이미 쓰고 스윕은 반려된 이력이 있어, 겹치지 않는 이펙트로 선택 */
@property --bizang{syntax:"<angle>";initial-value:0deg;inherits:false}
.biz-ring{--bizang:0deg;margin-top:40px;padding:1.5px;border-radius:14px;
  background:conic-gradient(from var(--bizang),var(--line) 0 50%,#8FE3C9 68%,var(--green) 78%,var(--line) 88%)}
/* 리빌 스태거가 카드를 14px 아래에서 올리므로 .biz-grid에 흰 배경 필수 — 없으면 링 색이 카드 위로 비침 */
.biz-grid{display:grid;grid-template-columns:repeat(4,1fr);border-radius:12.5px;overflow:hidden;background:var(--bg)}
.biz{border-right:1px solid var(--line);padding:30px 26px;background:var(--bg);display:flex;flex-direction:column}
.biz:last-child{border-right:none}
.biz .no{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:12px;letter-spacing:.18em;color:var(--ink-3);margin-bottom:16px}
.biz .no .em{font-style:normal;font-size:26px;line-height:1;letter-spacing:0;filter:drop-shadow(0 4px 10px rgba(11,107,79,.25))}
.biz h3{font-size:17px;font-weight:800;margin-bottom:10px}
.biz p{font-size:13.5px;color:var(--ink-2)}
/* margin-top:auto — 설명 길이가 달라도 네 카드의 "넘겨주는 것" 줄이 같은 높이에 정렬됨 */
.biz .gives{margin-top:auto;padding-top:16px;font-style:normal;font-size:12.5px;font-weight:800;color:var(--green)}
.biz .gives::before{content:"→ "}
.biz:hover{background:var(--green-tint)}
.biz-syn{margin-top:16px;font-size:13.5px;color:var(--ink-3);text-align:center}
@media (prefers-reduced-motion:no-preference){
  .biz-ring{animation:bizring 12s linear infinite}
  @keyframes bizring{to{--bizang:360deg}}
  .biz .no .em{animation:bizem 11s ease-in-out infinite}
  .biz:nth-child(2) .no .em{animation-delay:2.75s}
  .biz:nth-child(3) .no .em{animation-delay:5.5s}
  .biz:nth-child(4) .no .em{animation-delay:8.25s}
  @keyframes bizem{0%,20%,100%{rotate:0deg}7%{rotate:-10deg}14%{rotate:6deg}}
}

/* brands */
.brand-list{margin-top:40px;border-top:1px solid var(--line)}
.brow{display:grid;grid-template-columns:230px 1fr 250px;gap:20px;align-items:center;padding:26px 4px;
  border-bottom:1px solid var(--line);transition:.15s;text-decoration:none;color:inherit}
.brow:hover{padding-left:14px}
a.brow:hover{background:var(--bg-2)}

/* brand detail accordion */
details.brand{border-bottom:1px solid var(--line)}
details.brand summary{display:grid;grid-template-columns:230px 1fr 250px 26px;gap:20px;align-items:center;
  padding:26px 4px;cursor:pointer;list-style:none;transition:.15s}
details.brand summary::-webkit-details-marker{display:none}
details.brand summary:hover{padding-left:14px;background:var(--bg-2)}
details.brand .chev{color:var(--green);font-weight:900;text-align:center;transition:transform .2s}
details.brand[open] .chev{transform:rotate(90deg)}
.bd{display:grid;grid-template-columns:360px 1fr;gap:40px;padding:12px 4px 38px;align-items:start}
.bd img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--line);display:block}
.bd .desc{font-size:15px;color:var(--ink-2);line-height:1.7;max-width:560px}
.bd h5{font-size:12px;letter-spacing:.16em;color:var(--green);text-transform:uppercase;font-weight:800;margin:20px 0 10px}
.bd .chips{display:flex;flex-wrap:wrap;gap:8px}
.bd .chip{font-size:13px;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:6px 14px;color:var(--ink-2)}
.bd .chip.soon{color:var(--ink-3);border-style:dashed;background:transparent}
.bd .bd-cta{margin-top:24px}
@media (max-width:880px){
  .bd{grid-template-columns:1fr;gap:22px}
  details.brand summary{grid-template-columns:1fr 26px;grid-template-rows:auto auto auto;row-gap:5px;padding:22px 4px}
  details.brand summary .name{grid-column:1}
  details.brand summary .cat{grid-column:1;font-size:13px}
  details.brand summary .pt{grid-column:1;text-align:left;font-size:13px;font-weight:600;color:var(--ink-3);white-space:normal}
  details.brand summary .chev{grid-row:1/4;grid-column:2}
  details.brand summary .name img,.brow .name img{height:22px;max-width:150px}
}
.brow .name,details.brand summary .name{font-size:clamp(19px,2.6vw,26px);font-weight:900;letter-spacing:-.015em;display:flex;align-items:center}
.brow .name img,details.brand summary .name img{height:30px;width:auto;max-width:190px}
.brow .cat{font-size:14px;color:var(--ink-2)}
.brow .pt{font-size:14px;font-weight:700;text-align:right;white-space:nowrap}
.brow .pt em{font-style:normal;color:var(--green)}
.brow.soon .name{color:var(--ink-3);font-size:clamp(16px,2.2vw,21px);letter-spacing:.08em}
.brow.soon .cat{color:var(--ink-2)}
.brow.soon .pt em{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--ink-3);
  border:1px solid var(--line);border-radius:999px;padding:4px 12px;background:#fff;margin-left:10px}
/* 루프로우 아코디언 비주얼 — 네온 로고는 블랙 패널 위에서만 사용 (흰 배경에선 검정 로고) */
.lp-panel{aspect-ratio:4/3;background:#101511;border:1px solid var(--line);border-radius:12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
/* .bd img의 4:3 크롭 규칙을 무효화 — 로고는 원본 비율 그대로 */
.lp-panel img{width:58%;max-width:230px;height:auto;aspect-ratio:auto;object-fit:contain;border:none;border-radius:0}
.lp-panel span{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#7d867f;font-weight:700}
/* 런칭 예정 브랜드는 빗금 배경으로 운영 중 브랜드와 확실히 구분 */
.brow.soon{background:repeating-linear-gradient(-45deg,#FBFCFB 0 9px,#F0F3F1 9px 18px)}
.brow.soon:hover{padding-left:4px}

/* partnership */
.partner{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.partner .grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.p-list{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.p-list li{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:16px 2px;border-bottom:1px solid var(--line);font-size:14.5px;align-items:baseline}
.p-list b{font-weight:800}
.p-list span{color:var(--ink-2)}
.p-stats{display:grid;grid-template-columns:1fr 1fr;gap:26px 34px;margin-top:8px}
.p-stats div b{font-size:26px;font-weight:900;display:block;color:var(--green)}
.p-stats div > span{font-size:13px;color:var(--ink-3)}

/* moments (photo gallery) */
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.photo-grid figure{margin:0}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block;border:1px solid var(--line)}
.photo-grid figcaption{margin-top:10px;font-size:13.5px;color:var(--ink-2)}
.photo-ph{aspect-ratio:4/3;border:1.5px dashed var(--line);border-radius:10px;background:var(--bg-2);
  display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:13px;letter-spacing:.06em}
.photo-grid figcaption b{color:var(--ink);font-weight:700}
@media (max-width:880px){.photo-grid{grid-template-columns:1fr}}

/* culture */
.val-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:38px}
.vcell{border-top:2px solid var(--ink);padding-top:16px}
.vcell b{display:block;font-size:13.5px;letter-spacing:.08em;margin-bottom:8px}
.vcell p{font-size:13.5px;color:var(--ink-2)}
/* 복지: 이모지 아이콘 카드 그리드 */
.perks{margin-top:30px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.perk{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600;background:#fff;
  border:1px solid var(--line);border-radius:13px;padding:11px 14px;color:var(--ink-2)}
.perk i{font-style:normal;width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:var(--green-tint);border-radius:11px;font-size:17px}
@media (max-width:560px){.perks{grid-template-columns:1fr 1fr}
  .perk{flex-direction:column;text-align:center;gap:8px;padding:14px 10px}}

/* culture — value cards */
.cul-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px}
.cul{position:relative;overflow:hidden;background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:26px 22px}
.cul:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(11,107,79,.12);border-color:rgba(11,107,79,.35)}
.cul .ic{width:44px;height:44px;border-radius:12px;background:var(--green-tint);color:var(--green);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.cul .ic svg{width:24px;height:24px}
.cul b{display:block;font-size:12.5px;letter-spacing:.08em;color:var(--ink-3);font-weight:800;margin-bottom:4px}
.cul em{display:block;font-style:normal;font-size:15.5px;font-weight:800;color:var(--ink);margin-bottom:8px}
.cul p{font-size:13px;color:var(--ink-2)}
@media (max-width:880px){.cul-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cul-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:no-preference){
  .cul .ic{animation:icbob 5.5s ease-in-out infinite}
  .cul:nth-child(2) .ic{animation-delay:1s}.cul:nth-child(3) .ic{animation-delay:2s}.cul:nth-child(4) .ic{animation-delay:3s}
  @keyframes icbob{0%,100%{scale:1}50%{scale:1.1}}
}

/* culture — 성장 루프 다이어그램 */
.wloop{margin-top:26px;border:1px solid var(--line);border-radius:16px;background:var(--bg-2);padding:26px 26px 22px;position:relative}
.wl-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.wl-head b{font-size:16px;font-weight:800}
.wl-head span{font-size:13px;color:var(--ink-3)}
.wl-track{display:grid;grid-template-columns:1fr 30px 1fr 30px 1fr 30px 1fr;gap:6px;align-items:stretch}
.wl-step{border:1.5px solid var(--line);border-radius:12px;padding:16px;background:#fff}
.wl-step i{font-style:normal;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--green)}
.wl-step b{display:block;font-size:15px;font-weight:800;margin:6px 0 4px}
.wl-step p{font-size:12.5px;color:var(--ink-2)}
.wl-arrow{align-self:center;text-align:center;color:var(--green);font-weight:900;font-size:18px}
.wl-return{margin-top:16px;position:relative;display:flex;align-items:center;justify-content:center;height:26px}
.wl-return::before{content:"";position:absolute;left:3%;right:3%;top:50%;height:2px;margin-top:-1px;
  background:repeating-linear-gradient(90deg,rgba(11,107,79,.4) 0 8px,transparent 8px 16px)}
.wl-return span{position:relative;background:var(--bg-2);padding:0 14px;font-size:12.5px;font-weight:800;color:var(--green)}
@media (max-width:880px){
  .wl-track{grid-template-columns:1fr}
  .wl-arrow{transform:rotate(90deg);padding:2px 0}
}
@media (prefers-reduced-motion:no-preference){
  .wl-step{animation:wlpulse 8s ease-in-out infinite}
  .wl-track > .wl-step:nth-child(3){animation-delay:2s}
  .wl-track > .wl-step:nth-child(5){animation-delay:4s}
  .wl-track > .wl-step:nth-child(7){animation-delay:6s}
  @keyframes wlpulse{0%,25%,100%{border-color:var(--line);box-shadow:none}
    8%{border-color:rgba(11,107,79,.6);box-shadow:0 10px 26px rgba(11,107,79,.16)}}
  .wl-arrow{animation:wlarrow 8s ease-in-out infinite}
  .wl-track > .wl-arrow:nth-child(2){animation-delay:1s}
  .wl-track > .wl-arrow:nth-child(4){animation-delay:3s}
  .wl-track > .wl-arrow:nth-child(6){animation-delay:5s}
  @keyframes wlarrow{0%,25%,100%{opacity:.55}10%{opacity:1}}
  .wl-return::before{animation:wlret 1.6s linear infinite}
  @keyframes wlret{to{background-position:-16px 0}}
}

/* culture — 오피스 사진 스트립 */
.office-strip{margin-top:26px}
.os-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.os-head b{font-size:17px;font-weight:800;display:block;margin-bottom:4px}
.os-head p{font-size:13.5px;color:var(--ink-2);max-width:520px}
.os-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.os-grid figure{position:relative;margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.os-grid img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .45s ease}
.os-grid figure:hover img{transform:scale(1.05)}
.os-grid .big{grid-column:span 2;grid-row:span 2}
.os-grid .big img{aspect-ratio:auto}
.os-grid figcaption{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);border-radius:999px;
  padding:4px 13px;font-size:12px;font-weight:700;color:var(--ink)}
@media (max-width:880px){
  .os-grid{grid-template-columns:1fr 1fr}
  .os-grid .big{grid-column:span 2;grid-row:auto}
  .os-grid .big img{aspect-ratio:16/9}
}

/* careers */
.careers{border-top:1px solid var(--line)}
.careers .row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.careers .note{font-size:13.5px;color:var(--ink-3);margin-top:10px}
.job-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.jchip{font-size:14px;font-weight:600;background:var(--bg);border:1px solid var(--line);border-radius:999px;
  padding:9px 18px;text-decoration:none;color:var(--ink-2);transition:.15s}
.jchip:hover{border-color:var(--ink);color:var(--ink)}

/* milestones 2-col (list + chart) */
.miles-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:start}
.miles-grid .chart{margin-top:44px;position:sticky;top:110px;max-width:none}
/* 모바일은 1열로 접히므로 차트를 연혁 리스트보다 위로 — 연혁 10줄을 다 지나야 차트가 보이던 문제 */
@media (max-width:880px){
  .miles-grid{grid-template-columns:1fr;gap:8px}
  .miles-grid .chart{position:static;order:-1;margin-top:32px}
  .miles-grid .miles{margin-top:28px}
}

/* for creators — dark section */
.creators{background:linear-gradient(160deg,#0A5A43 0%,#06412F 100%);color:#EAF5F0}
.creators .grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.creators .eyebrow{color:#7FD9BD}
.creators h2{color:#fff}
.creators .sub{color:#B9D8CB}
.creators .p-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.creators .p-stats div{background:#fff;border-radius:14px;padding:20px 22px;
  box-shadow:0 14px 34px rgba(0,0,0,.25);transition:transform .25s,box-shadow .25s}
.creators .p-stats div:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(0,0,0,.32)}
.creators .p-stats div b{font-size:clamp(34px,3.2vw,46px);font-weight:900;display:block;letter-spacing:-.03em;line-height:1.1;white-space:nowrap;color:var(--green)}
.creators .p-stats div b .u{font-style:normal;font-size:.5em;color:#2E8A6B;margin-left:3px;font-weight:800}
.creators .p-stats div > span{font-size:13.5px;font-weight:600;color:#4E5A54;display:block;margin-top:8px}
.creators .p-list{list-style:none;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.18)}
.creators .p-list li{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:16px 2px;
  border-bottom:1px solid rgba(255,255,255,.12);font-size:14.5px;align-items:baseline}
.creators .p-list b{font-weight:800;color:#fff}
.creators .p-list span{color:#B9D8CB}
.btn.light{background:#fff;border-color:#fff;color:#06412F}
.btn.light:hover{background:#8FE3C9;border-color:#8FE3C9;color:#06412F}
.btn.ghost{border-color:#8FE3C9;color:#8FE3C9;background:transparent}
.btn.ghost:hover{background:rgba(143,227,201,.14);color:#8FE3C9}
@media (max-width:880px){.creators .grid{grid-template-columns:1fr}}

/* moments stat cards */
.photo-grid .m-card{aspect-ratio:4/3;border:1px solid var(--line);border-radius:10px;background:var(--bg-2);
  padding:26px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.m-card .logo{height:28px;width:auto;align-self:flex-start}
.m-card b{font-size:clamp(20px,2.4vw,27px);font-weight:900;letter-spacing:-.02em;line-height:1.35;text-wrap:balance}
.m-card b em{font-style:normal;color:var(--green)}
.m-card p{font-size:13.5px;color:var(--ink-2)}
.m-card .src{font-size:12.5px;color:var(--ink-3);text-decoration:none}
.m-card .src:hover{color:var(--green)}
@media (max-width:880px){.photo-grid .m-card{aspect-ratio:auto;min-height:200px}}

/* about page — mission 듀얼 엔진 다이어그램 */
.mission-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;margin-top:36px}
.mission-grid .mission-list{margin-top:0}
.dual-viz{position:relative;aspect-ratio:7/5;max-width:480px;width:100%;margin:0 auto}
.dv-c{position:absolute;width:58%;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(11,107,79,.3);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px}
.dv-a{left:0;top:7%;background:radial-gradient(circle at 35% 40%,rgba(11,107,79,.12),rgba(11,107,79,.02));padding-right:19%}
.dv-b{right:0;top:7%;background:radial-gradient(circle at 65% 60%,rgba(46,217,160,.15),rgba(46,217,160,.02));padding-left:19%}
.dv-c b{font-size:15px;font-weight:800;line-height:1.35}
.dv-c span{font-size:12px;font-weight:700;color:var(--green)}
.dv-ring{position:absolute;left:50%;top:50%;width:46%;aspect-ratio:1;margin:-23% 0 0 -23%;
  border:1.5px dashed rgba(11,107,79,.4);border-radius:50%;z-index:1}
.dv-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;
  background:linear-gradient(160deg,#0A5A43,#06412F);color:#fff;border-radius:16px;padding:14px 20px;
  box-shadow:0 16px 36px rgba(11,107,79,.35)}
.dv-core em{font-style:normal;font-weight:900;font-size:17px;display:block}
.dv-core em i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#8FE3C9;margin-left:2px}
.dv-core span{display:block;font-size:11.5px;color:#B9D8CB;margin-top:4px;line-height:1.5}
@media (max-width:880px){.mission-grid{grid-template-columns:1fr;gap:40px}}
/* 좁은 화면에선 원은 폭 따라 줄지만 코어 박스는 고정 크기라 양쪽 라벨을 덮어버림(실측: 430px 이하).
   코어·라벨을 같이 줄이고 라벨을 바깥으로 밀어냄.
   ※ 퍼센트 패딩은 자기 폭이 아니라 .dual-viz 폭 기준 — 25%가 상한(그 이상은 라벨이 줄바꿈됨) */
@media (max-width:520px){
  .dv-c b{font-size:13px}
  .dv-c span{font-size:10px;line-height:1.4}
  .dv-a{padding-right:25%}
  .dv-b{padding-left:25%}
  .dv-core{padding:10px 12px}
  .dv-core em{font-size:15px}
  .dv-core span{font-size:10px;margin-top:3px}
}
@media (prefers-reduced-motion:no-preference){
  .dv-c{animation:dvbreath 7s ease-in-out infinite}
  .dv-b{animation-delay:3.5s}
  @keyframes dvbreath{0%,100%{scale:1}50%{scale:1.04}}
  .dv-ring{animation:dvspin 24s linear infinite}
  @keyframes dvspin{to{rotate:360deg}}
  .dv-core{animation:dvfloat 6s ease-in-out infinite}
  @keyframes dvfloat{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 7px))}}
}

.mission-list{list-style:none;margin-top:36px;display:grid;gap:14px;counter-reset:mi}
.mission-list li{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;
  padding:22px 24px 22px 64px;font-size:15px;color:var(--ink-2)}
.mission-list li::before{counter-increment:mi;content:"0" counter(mi);position:absolute;left:24px;top:22px;
  font-size:13px;font-weight:900;letter-spacing:.1em;color:var(--green)}
.fac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-right:none;border-bottom:none;margin-top:40px}
@media (max-width:880px){
  .fac-grid{grid-template-columns:1fr}
  .fac{padding:22px 20px}
  .fac img{aspect-ratio:16/9}
  .office-feature img{aspect-ratio:16/10}
}
.fac{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 26px;background:var(--bg)}
.fac img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-bottom:16px;display:block}
.office-feature{margin-top:40px}
.office-feature img{width:100%;aspect-ratio:21/8;object-fit:cover;border-radius:14px;display:block;border:1px solid var(--line)}
.fac b{display:block;font-size:15.5px;font-weight:800;margin-bottom:8px}
.fac p{font-size:13.5px;color:var(--ink-2)}
.fac:hover{background:var(--green-tint)}
.year-label{font-size:13px;font-weight:900;letter-spacing:.14em;color:var(--green);margin:44px 0 0}
.year-label:first-of-type{margin-top:40px}
.map-box{margin-top:36px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:30px 32px;
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.map-box b{font-size:17px;font-weight:800;display:block;margin-bottom:6px}
.map-box p{font-size:14px;color:var(--ink-2)}

/* careers page */
.page-hero{padding:110px 0 64px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;right:-260px;top:-320px;width:720px;height:720px;border-radius:50%;
  background:radial-gradient(circle at 42% 42%,var(--green-tint) 0%,rgba(238,245,241,.5) 45%,transparent 70%);pointer-events:none}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(32px,5vw,52px);font-weight:900;letter-spacing:-.03em;line-height:1.2;text-wrap:balance}
.page-hero h1 em{font-style:normal;color:var(--green)}
.page-hero p{margin-top:18px;font-size:16px;color:var(--ink-2);max-width:560px}
/* page-hero 우측 비주얼 — about: 브랜드 궤도 / careers: 성장 다이어그램 */
.ph-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.ph-grid h1{font-size:clamp(30px,3.6vw,42px)}
.ph-viz{position:relative;padding:20px 0}
.ph-viz .vcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 26px;box-shadow:0 20px 44px rgba(11,107,79,.1)}
.ph-viz .vcard .t{font-size:12px;letter-spacing:.16em;font-weight:800;color:var(--ink-3);text-transform:uppercase}
.ph-viz svg{width:100%;height:150px;margin-top:14px;overflow:visible}
.ph-viz .chip{position:absolute;background:var(--green);color:#fff;border-radius:12px;padding:12px 16px;box-shadow:0 14px 30px rgba(11,107,79,.3)}
.ph-viz .chip b{display:block;font-size:19px;font-weight:900}
.ph-viz .chip span{font-size:11.5px;opacity:.85}
.ph-viz .c1{right:-8px;top:-6px}
.ph-viz .c2{left:-14px;bottom:-4px;background:#fff;color:var(--ink);border:1px solid var(--line)}
.ph-viz .c2 b{color:var(--green)}
.orbit-wrap{position:relative;width:min(100%,380px);aspect-ratio:1;margin:0 auto}
.orbit-wrap .ring{position:absolute;inset:0;border:1.5px dashed rgba(11,107,79,.25);border-radius:50%}
.orbit-wrap .ring.r2{inset:17%}
.orbit-wrap .core{position:absolute;inset:38%;background:linear-gradient(160deg,#0A5A43,#06412F);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:clamp(15px,1.6vw,20px);box-shadow:0 16px 40px rgba(11,107,79,.35)}
.orbit-wrap .core i{width:6px;height:6px;background:#8FE3C9;border-radius:50%;margin-left:3px}
.orbit-wrap .sat{position:absolute;left:50%;top:50%;width:0;height:0}
.orbit-wrap .sat.ro{--r:186px}
.orbit-wrap .sat.ri{--r:124px}
.orbit-wrap .sat > span{position:absolute;left:-46px;top:-20px;transform:translateX(var(--r));background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:8px 13px;box-shadow:0 10px 26px rgba(0,0,0,.1);display:flex;align-items:center}
.orbit-wrap .sat img{height:15px;width:auto;max-width:78px;display:block}
/* 정지 상태에서도 4방향으로 분산 (애니메이션 시작 각도 겸용) */
.orbit-wrap .sat.s1{transform:rotate(15deg)}
.orbit-wrap .sat.s1 > span{transform:translateX(var(--r)) rotate(-15deg)}
.orbit-wrap .sat.s2{transform:rotate(105deg)}
.orbit-wrap .sat.s2 > span{transform:translateX(var(--r)) rotate(-105deg)}
.orbit-wrap .sat.s3{transform:rotate(195deg)}
.orbit-wrap .sat.s3 > span{transform:translateX(var(--r)) rotate(-195deg)}
.orbit-wrap .sat.s4{transform:rotate(285deg)}
.orbit-wrap .sat.s4 > span{transform:translateX(var(--r)) rotate(-285deg)}
@media (prefers-reduced-motion:no-preference){
  .ph-viz .c1{animation:chipf 6s ease-in-out infinite}
  .ph-viz .c2{animation:chipf 7s ease-in-out 1s infinite}
  @keyframes chipf{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
  .orbit-wrap .sat{animation:orbspin 26s linear infinite}
  .orbit-wrap .sat > span{animation:orbunspin 26s linear infinite}
  .orbit-wrap .sat.s2,.orbit-wrap .sat.s2 > span{animation-duration:34s;animation-delay:-8s}
  .orbit-wrap .sat.s3,.orbit-wrap .sat.s3 > span{animation-duration:30s;animation-delay:-17s}
  .orbit-wrap .sat.s4,.orbit-wrap .sat.s4 > span{animation-duration:38s;animation-delay:-25s}
  @keyframes orbspin{to{transform:rotate(360deg)}}
  @keyframes orbunspin{to{transform:translateX(var(--r)) rotate(-360deg)}}
}
@media (max-width:880px){
  .ph-grid{grid-template-columns:1fr;gap:40px}
  .orbit-wrap{width:min(74%,280px)}
  .orbit-wrap .sat.ro{--r:134px}
  .orbit-wrap .sat.ri{--r:89px}
}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-right:none;margin-top:40px}
.step{border-right:1px solid var(--line);padding:26px 24px;background:var(--bg)}
.step .no{font-size:12px;letter-spacing:.18em;color:var(--ink-3);margin-bottom:12px}
.step .opt{font-size:10.5px;font-weight:800;letter-spacing:.05em;color:var(--green);background:var(--green-tint);
  border:1px solid rgba(11,107,79,.2);border-radius:999px;padding:3px 10px;margin-left:6px;vertical-align:1px}
.step b{display:block;font-size:16px;font-weight:800;margin-bottom:6px}
.step p{font-size:13.5px;color:var(--ink-2)}
.job-list{margin-top:36px;border-top:1px solid var(--line)}
.jobrow{display:grid;grid-template-columns:1fr 150px 110px 90px 26px;gap:16px;align-items:center;
  padding:22px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:.15s}
.jobrow:hover{padding-left:14px;background:var(--bg-2)}
.jobrow .t{font-size:16.5px;font-weight:800}
.jobrow .t small{display:block;font-size:13px;font-weight:400;color:var(--ink-3);margin-top:3px}
.jobrow .meta{font-size:13.5px;color:var(--ink-2)}
.jobrow .tag{justify-self:start;font-size:12px;font-weight:700;color:var(--green);background:var(--green-tint);
  border-radius:999px;padding:4px 12px}
.jobrow .go{color:var(--green);font-weight:800;text-align:right}
@media (max-width:880px){
  .steps{grid-template-columns:1fr}
  .jobrow{grid-template-columns:1fr 90px}
  .jobrow .meta.hide-m{display:none}
}

/* countup 숫자는 반드시 부모 타이포 상속 (확장/UA 스타일 간섭 방지) */
[data-count]{font:inherit !important;color:inherit;letter-spacing:inherit;background:none}

/* channel logo marquee */
.channels{margin-top:56px;border-top:1px solid var(--line);padding-top:36px;overflow:hidden}
.channels .label{font-size:11.5px;letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase;font-weight:700;margin-bottom:24px}
.mq{display:flex;overflow:hidden;user-select:none}
.mq-track{display:flex;gap:64px;align-items:center;flex-shrink:0;padding-right:64px}
.mq img{height:24px;width:auto;opacity:.95;transition:.2s;display:block}
.mq img.sq{height:40px}
.mq img:hover{opacity:1;transform:scale(1.06)}
/* 모바일은 화면이 좁아 간격이 넓으면 로고가 2~3개밖에 안 걸림 */
@media (max-width:880px){.mq-track{gap:40px;padding-right:40px}}
@media (prefers-reduced-motion:no-preference){
  /* 로고가 다 그려진 뒤에 출발 (.ready는 main.js가 부여) — 디코딩 전에 돌기 시작하면
     트랙 폭이 확정되지 않아 translateX(-100%) 이동량이 어긋나고 빈 구간이 생김 */
  .mq-track{animation:mqmove 32s linear infinite;animation-play-state:paused}
  .mq.ready .mq-track{animation-play-state:running}
  @keyframes mqmove{from{transform:translateX(0)}to{transform:translateX(-100%)}}
}

/* growth chart — 분기 바 + 곡선 라인 오버레이 */
.chart{max-width:560px;margin-top:44px}
.chart .plot{position:relative;height:220px;display:flex;align-items:flex-end;gap:6px}
.chart .plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}
.chart .line{fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 3px 6px rgba(11,107,79,.3))}
.chart .dot{fill:#fff;stroke:var(--green);stroke-width:3}
.chart .dot.d3{fill:var(--green);stroke:#fff;stroke-width:2.5}
.chart .bar{flex:1;position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.chart .bar i{display:block;width:100%;height:var(--h);border-radius:5px 5px 0 0;background:linear-gradient(180deg,#2E8A6B,var(--green));opacity:.45;transform-origin:bottom}
.chart .bar.key i{opacity:1}
.chart .bar.t i{opacity:1;background:repeating-linear-gradient(-45deg,#D9F3E8 0 6px,#EFFAF5 6px 12px);border:1px solid rgba(11,107,79,.22);border-bottom:none}
.chart .bar.t.key i{background:repeating-linear-gradient(-45deg,#8FE3C9 0 6px,#C9F2E2 6px 12px);border-color:rgba(11,107,79,.35)}
.chart .bar b{position:absolute;bottom:calc(var(--h) + 12px);left:50%;transform:translateX(-50%);font-size:14.5px;font-weight:900;white-space:nowrap;z-index:3;text-align:center}
.chart .bar.t b{color:var(--green)}
.chart .bar b .tg{display:block;font-size:9.5px;font-weight:800;letter-spacing:.14em;color:var(--green);opacity:.75;margin-bottom:1px}
.chart .xlab{display:grid;grid-template-columns:repeat(15,1fr);margin-top:10px;font-size:11.5px;color:var(--ink-3)}
.chart .xlab span{grid-column:span 2;text-align:center;border-top:2px solid var(--line);padding-top:8px}
.chart .xlab span:last-child{grid-column:span 1}
.chart .xlab span.gy{color:var(--green);font-weight:700}
.chart .chart-note{margin-top:12px;font-size:12.5px;color:var(--ink-3);display:flex;gap:18px;align-items:center}
.chart .chart-note .lg{display:inline-flex;align-items:center;gap:7px}
.chart .sw{width:16px;height:11px;border-radius:2.5px;display:inline-block}
.chart .sw-real{background:linear-gradient(180deg,#2E8A6B,var(--green))}
.chart .sw-goal{background:repeating-linear-gradient(-45deg,#8FE3C9 0 4px,#C9F2E2 4px 8px);border:1px solid rgba(11,107,79,.3)}
@media (max-width:880px){.chart .bar b{font-size:11.5px}.chart .xlab{font-size:10.5px}}
@media (prefers-reduced-motion:no-preference){
  .chart .bar i{transform:scaleY(0);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
  .chart .bar:nth-child(2) i{transition-delay:.06s}.chart .bar:nth-child(3) i{transition-delay:.16s}
  .chart .bar:nth-child(4) i{transition-delay:.26s}.chart .bar:nth-child(5) i{transition-delay:.36s}
  .chart .bar:nth-child(6) i{transition-delay:.46s}.chart .bar:nth-child(7) i{transition-delay:.56s}
  .chart .bar:nth-child(8) i{transition-delay:.66s}.chart .bar:nth-child(9) i{transition-delay:.76s}
  .chart .bar:nth-child(10) i{transition-delay:.86s}.chart .bar:nth-child(11) i{transition-delay:.96s}
  .chart .bar:nth-child(12) i{transition-delay:1.06s}.chart .bar:nth-child(13) i{transition-delay:1.16s}
  .chart .bar:nth-child(14) i{transition-delay:1.26s}.chart .bar:nth-child(15) i{transition-delay:1.36s}
  .chart .bar:nth-child(16) i{transition-delay:1.46s}
  .on .chart .bar i{transform:scaleY(1)}
  .chart .line{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2.4s ease 1.5s}
  .on .chart .line{stroke-dashoffset:0}
  .chart .area{opacity:0;transition:opacity 1.2s ease 3.4s}
  .on .chart .area{opacity:1}
  .chart .dot{opacity:0;transition:opacity .45s ease}
  .chart .dot.d1{transition-delay:1.8s}.chart .dot.d2{transition-delay:2.3s}.chart .dot.d3{transition-delay:2.8s}
  .chart .dot.d4{transition-delay:3.3s}.chart .dot.d5{transition-delay:3.8s}
  .on .chart .dot{opacity:1}
  .on .chart .dot.d5{animation:dotpulse 2.6s ease-out 4.2s infinite}
  @keyframes dotpulse{0%,100%{stroke-width:2.5}45%{stroke-width:9;stroke-opacity:.45}}
  /* 목표 구간 빗금이 계속 흐르는 상시 루프 — 화면이 멈춰 보이지 않게 */
  .chart .bar.t i{animation:stripemove 3.2s linear infinite}
  @keyframes stripemove{to{background-position:16.97px 0}}
}

/* value chain flow diagram */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}
.fstep{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:22px 20px}
.fstep .no{font-size:11px;letter-spacing:.18em;color:var(--green);font-weight:800;margin-bottom:10px}
.fstep b{display:block;font-size:15.5px;font-weight:800;margin-bottom:6px}
.fstep p{font-size:13px;color:var(--ink-2)}
.fstep::after{content:"→";position:absolute;right:-13px;top:50%;transform:translateY(-50%);color:var(--green);font-weight:900;z-index:1}
.fstep:last-child::after{content:none}
@media (max-width:880px){
  .flow{grid-template-columns:1fr}
  .fstep::after{content:"↓";right:auto;left:50%;top:auto;bottom:-15px;transform:translateX(-50%)}
  .fstep:last-child::after{content:none}
}

/* stagger reveal for grid children */
@media (prefers-reduced-motion:no-preference){
  .reveal :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure){opacity:0;transform:translateY(14px);transition:opacity .75s ease,transform .75s ease}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure){opacity:1;transform:none}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(1){transition-delay:.08s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(2){transition-delay:.18s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(3){transition-delay:.28s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(4){transition-delay:.38s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(5){transition-delay:.48s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(6){transition-delay:.58s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(7){transition-delay:.68s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(8){transition-delay:.78s}
  .reveal.on :is(.stat,.biz,.brow,.fac,.vcell,.cul,.fstep,.step,figure):nth-child(9){transition-delay:.88s}
}

/* JD accordion */
details.job{border-bottom:1px solid var(--line)}
details.job summary{display:grid;grid-template-columns:1fr 150px 110px 90px 26px;gap:16px;align-items:center;
  padding:22px 4px;cursor:pointer;list-style:none;transition:.15s}
details.job summary::-webkit-details-marker{display:none}
details.job summary:hover{padding-left:14px;background:var(--bg-2)}
details.job .t{font-size:16.5px;font-weight:800}
details.job .t small{display:block;font-size:13px;font-weight:400;color:var(--ink-3);margin-top:3px}
details.job .meta{font-size:13.5px;color:var(--ink-2)}
details.job .tag{justify-self:start;font-size:12px;font-weight:700;color:var(--green);background:var(--green-tint);border-radius:999px;padding:4px 12px}
details.job .chev{color:var(--green);font-weight:900;text-align:center;transition:transform .2s}
details.job[open] .chev{transform:rotate(90deg)}
.jd{padding:8px 4px 32px;display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}
.jd h4{font-size:12.5px;letter-spacing:.16em;color:var(--green);text-transform:uppercase;margin-bottom:12px;font-weight:800}
.jd ul{list-style:none;display:grid;gap:8px}
.jd li{font-size:14px;color:var(--ink-2);padding-left:14px;position:relative;line-height:1.55}
.jd li::before{content:"–";position:absolute;left:0;color:var(--ink-3)}
.jd .jd-note{grid-column:1/-1;font-size:13px;color:var(--ink-3)}
.jd .jd-apply{grid-column:1/-1;justify-self:start}
@media (max-width:880px){
  details.job summary{grid-template-columns:1fr 26px}
  details.job .meta,details.job .tag{display:none}
  .jd{grid-template-columns:1fr}
}

/* apply modal */
.modal-ov{position:fixed;inset:0;background:rgba(8,22,16,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:20px;backdrop-filter:blur(3px)}
.modal-ov.open{display:flex}
.modal{background:#fff;border-radius:16px;max-width:540px;width:100%;max-height:92vh;overflow:auto;padding:32px}
.m-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.m-head h3{font-size:20px;font-weight:900}
.m-x{border:none;background:none;font-size:24px;line-height:1;cursor:pointer;color:var(--ink-3);padding:2px 6px}
.m-x:hover{color:var(--ink)}
.m-pos{display:inline-block;font-size:13px;color:var(--green);font-weight:800;background:var(--green-tint);border-radius:999px;padding:5px 14px;margin:12px 0 6px}
.modal label{display:block;font-size:13px;font-weight:700;margin:16px 0 6px;color:var(--ink-2)}
.modal label em{font-style:normal;color:#C0392B}
.modal input,.modal textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink)}
.modal input:focus,.modal textarea:focus{outline:2px solid var(--green);border-color:var(--green)}
.modal textarea{min-height:110px;resize:vertical}
.m-note{font-size:12.5px;color:var(--ink-3);margin-top:12px;line-height:1.6}
.m-actions{margin-top:22px;display:flex;gap:10px;align-items:center}
.m-msg{font-size:13.5px;color:#C0392B}
.m-success{text-align:center;padding:36px 10px}
.m-success .big{font-size:40px;margin-bottom:14px}
.m-success b{font-size:19px;display:block;margin-bottom:10px}
.m-success p{font-size:14px;color:var(--ink-2)}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

footer{border-top:1px solid var(--line);padding:56px 0;font-size:14px;color:var(--ink-3)}
footer .logo{margin-bottom:12px}
footer p{margin-top:4px}

@media (max-width:880px){
  /* .wrap.nav-in 복합 선택자 필수 — 아래 .wrap{padding:0 20px}이 같은 요소의 padding-top을 0으로 덮어쓰는 버그 방지 */
  .wrap.nav-in{flex-wrap:wrap;height:auto;gap:12px;row-gap:0;padding-top:12px}
  .nav-links{order:3;width:100%;gap:22px;font-size:13.5px;overflow-x:auto;padding:6px 0 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{white-space:nowrap}
  .m-hide{display:none !important}
  .nav-cta{gap:8px}
  .nav-cta .btn{padding:8px 12px;font-size:12.5px}
  .wrap{padding:0 20px}
  .statband .in{grid-template-columns:1fr 1fr}
  .stat{padding:26px 12px}
  .stat:nth-child(3){border-left:none}
  /* "3.5억 → 150억" 같은 긴 지표가 줄바꿈되지 않게 — 폭에 맞춰 축소 */
  .stat b{font-size:min(24px,6vw);white-space:nowrap}
  /* 2열로 접히면 우측 열의 세로선은 링과 겹치고, 두 행 사이엔 가로 구분선이 필요 */
  .biz-grid{grid-template-columns:1fr 1fr}
  .biz{padding:24px 20px}
  .biz:nth-child(2n){border-right:none}
  .biz:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .partner .grid{grid-template-columns:1fr}
  .val-row{grid-template-columns:1fr 1fr}
  .brow{grid-template-columns:1fr;gap:6px}
  .brow .pt{text-align:left}
}

/* ── 인터랙션 이펙트 ── */
.f-hint{display:block;font-size:12px;font-weight:400;color:var(--ink-3);margin-top:5px}
.btn{transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.btn:hover{transform:translateY(-1.5px)}
.mq:hover .mq-track{animation-play-state:paused}
/* .biz-grid가 링 라운드 클리핑용 overflow:hidden이라 카드 리프트는 잘림 — 배경 틴트로 대체 */
.biz{transition:background .25s ease}
.biz:hover .no{color:var(--green)}
.fstep{transition:transform .25s ease}
.fstep:hover{transform:translateY(-3px)}
.photo-grid figure img{transition:transform .35s ease,box-shadow .35s ease}
.photo-grid figure:hover img{transform:translateY(-5px);box-shadow:0 16px 34px rgba(0,0,0,.16)}
.perk{transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.perk:hover{border-color:rgba(11,107,79,.4);transform:translateY(-3px);box-shadow:0 12px 26px rgba(11,107,79,.1)}
.perk i{transition:transform .25s ease}
.perk:hover i{transform:scale(1.15) rotate(-6deg)}
.vcell{transition:transform .25s ease}
.vcell:hover{transform:translateY(-3px)}

@media (prefers-reduced-motion:no-preference){
  /* 히어로 헤드라인 민트 그라디언트 셔머 */
  .hero h1 em{background:linear-gradient(90deg,#8FE3C9 0%,#E9FCF4 45%,#8FE3C9 90%);background-size:220% 100%;
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 6s linear infinite}
  @keyframes shine{to{background-position:-220% 0}}
  /* 히어로 카드 플로팅 (스태거 transform과 충돌 없도록 translate 속성 사용) */
  .hero-visual img{animation:hfloat 7s ease-in-out infinite}
  .hero-visual img:nth-child(2){animation-duration:8.5s;animation-delay:.8s}
  .hero-visual img:nth-child(3){animation-duration:9.5s;animation-delay:1.6s}
  @keyframes hfloat{0%,100%{translate:0 0}50%{translate:0 -9px}}
  /* 지표 카드 스태거 (기존 stagger 블록 보완) */
  .reveal .p-stats>div{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease}
  .reveal.on .p-stats>div{opacity:1;transform:none}
  .reveal.on .p-stats>div:nth-child(2){transition-delay:.18s}
  .reveal.on .p-stats>div:nth-child(3){transition-delay:.36s}
  .reveal.on .p-stats>div:nth-child(4){transition-delay:.54s}
  /* 지표 카드 상시 부유 (translate 속성이라 리빌 transform과 충돌 없음) */
  .creators .p-stats div{animation:cardbob 8s ease-in-out infinite}
  .creators .p-stats div:nth-child(2){animation-delay:1.6s}
  .creators .p-stats div:nth-child(3){animation-delay:3.2s}
  .creators .p-stats div:nth-child(4){animation-delay:4.8s}
  @keyframes cardbob{0%,100%{translate:0 0}50%{translate:0 -6px}}
}
