{"id":2120,"date":"2025-10-29T22:32:18","date_gmt":"2025-10-29T13:32:18","guid":{"rendered":"https:\/\/creatip.co.kr\/?page_id=2120"},"modified":"2025-10-29T22:48:53","modified_gmt":"2025-10-29T13:48:53","slug":"2120-2","status":"publish","type":"page","link":"http:\/\/creatip.co.kr\/zh\/2120-2\/","title":{"rendered":"\u3160\u3160"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html lang=\"ko\"><br \/>\n<head><br \/>\n    <meta charset=\"UTF-8\"><br \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br \/>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><\/p>\n<p>    <!-- SEO Meta Tags --><br \/>\n    <title>\ud06c\ub9ac\uc5d0\uc774\ud301 &#8211; East Asia&#8217;s No.1 Marketing Group | CREATIP<\/title><br \/>\n    <meta name=\"description\" content=\"2008\ub144 \uc124\ub9bd\ub41c \ud06c\ub9ac\uc5d0\uc774\ud301\uc740 \ub3d9\uc544\uc2dc\uc544 \ucd5c\uace0\uc758 \ub9c8\ucf00\ud305 \uadf8\ub8f9\uc785\ub2c8\ub2e4. \uae00\ub85c\ubc8c \ud37c\ud3ec\uba3c\uc2a4 \ub9c8\ucf00\ud305, B2B\/B2C \ub9c8\ucf00\ud305 \uc804\ubb38. \ud55c\uad6d, \uc77c\ubcf8, \ub300\ub9cc \uae00\ub85c\ubc8c \ub124\ud2b8\uc6cc\ud06c.\"><br \/>\n    <meta name=\"keywords\" content=\"\ud06c\ub9ac\uc5d0\uc774\ud301, CREATIP, \ub9c8\ucf00\ud305 \uc5d0\uc774\uc804\uc2dc, \uae00\ub85c\ubc8c \ub9c8\ucf00\ud305, \ud37c\ud3ec\uba3c\uc2a4 \ub9c8\ucf00\ud305, \ub124\uc774\ubc84 \uacf5\uc2dd\ub300\ud589\uc0ac, \ub514\uc9c0\ud138 \ub9c8\ucf00\ud305, \ub3d9\uc544\uc2dc\uc544 \ub9c8\ucf00\ud305\"><br \/>\n    <meta name=\"author\" content=\"CREATIP\"><br \/>\n    <meta name=\"robots\" content=\"index, follow\"><\/p>\n<p>    <!-- Open Graph \/ Facebook --><br \/>\n    <meta property=\"og:type\" content=\"website\"><br \/>\n    <meta property=\"og:url\" content=\"https:\/\/creatip.co.kr\/\"><br \/>\n    <meta property=\"og:title\" content=\"\ud06c\ub9ac\uc5d0\uc774\ud301 - East Asia's No.1 Marketing Group\"><br \/>\n    <meta property=\"og:description\" content=\"2008\ub144 \uc124\ub9bd\ub41c \ud06c\ub9ac\uc5d0\uc774\ud301\uc740 \ub3d9\uc544\uc2dc\uc544 \ucd5c\uace0\uc758 \ub9c8\ucf00\ud305 \uadf8\ub8f9\uc785\ub2c8\ub2e4. \uae00\ub85c\ubc8c \ud37c\ud3ec\uba3c\uc2a4 \ub9c8\ucf00\ud305 \uc804\ubb38.\"><br \/>\n    <meta property=\"og:image\" content=\"https:\/\/creatip.co.kr\/assets\/logo-hero-693cba.png\"><br \/>\n    <meta property=\"og:locale\" content=\"ko_KR\"><\/p>\n<p>    <!-- Twitter --><br \/>\n    <meta name=\"twitter:card\" content=\"summary_large_image\"><br \/>\n    <meta name=\"twitter:title\" content=\"\ud06c\ub9ac\uc5d0\uc774\ud301 - East Asia's No.1 Marketing Group\"><br \/>\n    <meta name=\"twitter:description\" content=\"2008\ub144 \uc124\ub9bd\ub41c \ud06c\ub9ac\uc5d0\uc774\ud301\uc740 \ub3d9\uc544\uc2dc\uc544 \ucd5c\uace0\uc758 \ub9c8\ucf00\ud305 \uadf8\ub8f9\uc785\ub2c8\ub2e4.\"><br \/>\n    <meta name=\"twitter:image\" content=\"https:\/\/creatip.co.kr\/assets\/logo-hero-693cba.png\"><\/p>\n<p>    <!-- Preconnect for Performance -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<p>    <!-- Fonts -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Pretendard:wght@300;400;500;600;700;800;900&#038;family=Inter:wght@400;500;600;700&#038;family=PT+Serif:wght@400;700&#038;display=swap\" rel=\"stylesheet\">\n<p>    <!-- Favicon -->\n    <link rel=\"icon\" type=\"image\/png\" href=\"assets\/logo-gnb.svg\">\n<p><\/head><br \/>\n<body><br \/>\n    <!-- Hero Section --><\/p>\n<section class=\"hero\" id=\"main-content\" aria-label=\"Hero banner\">\n<div class=\"hero__slides\" role=\"region\" aria-label=\"Image slider\">\n<div class=\"hero__gradient hero__gradient--1 active\" aria-label=\"Slide 1\"><\/div>\n<div class=\"hero__gradient hero__gradient--2\" aria-label=\"Slide 2\"><\/div>\n<div class=\"hero__gradient hero__gradient--3\" aria-label=\"Slide 3\"><\/div><\/div>\n<div class=\"hero__dots\" role=\"tablist\" aria-label=\"Slider navigation\">\n            <button class=\"hero__dot active\" data-slide=\"0\" role=\"tab\" aria-label=\"Go to slide 1\" aria-selected=\"true\"><\/button><br \/>\n            <button class=\"hero__dot\" data-slide=\"1\" role=\"tab\" aria-label=\"Go to slide 2\" aria-selected=\"false\"><\/button><br \/>\n            <button class=\"hero__dot\" data-slide=\"2\" role=\"tab\" aria-label=\"Go to slide 3\" aria-selected=\"false\"><\/button>\n        <\/div>\n<div class=\"hero__title\">\n            <img decoding=\"async\" src=\"assets\/logo-hero-693cba.png\" alt=\"CREATIP - East Asia's No.1 Marketing Group Logo\" class=\"hero__logo\"><\/p>\n<h1 class=\"hero__main-text\">East Asia&#8217;s No.1 Marketing group<\/h1>\n<p class=\"hero__sub-text\">Join creatip, with global marketing experience and expertise that extends beyond Korea!<\/p>\n<\/p><\/div>\n<\/section>\n<p>    <!-- Contents Container --><\/p>\n<div class=\"contents\">\n        <!-- Who We Are Section --><\/p>\n<section class=\"who-we-are\" aria-label=\"Who we are\">\n<div class=\"who-we-are__left\">\n<div class=\"who-we-are__section\">\n<div class=\"who-we-are__header\">\n<div class=\"who-we-are__dot\"><\/div>\n<h2 class=\"who-we-are__title\">Who we are<\/h2>\n<\/p><\/div>\n<div class=\"who-we-are__content\">\n<div class=\"who-we-are__text-group\">\n<p class=\"who-we-are__main-text\">\uba85\ud655\ud55c \ubaa9\ud45c\uc124\uc815, \ube60\ub978 \uc2e4\ud589\ub825\uc73c\ub85c<br \/>\uae00\ub85c\ubc8c \uc2dc\uc7a5\uc744 \uacf5\ub7b5\ud569\ub2c8\ub2e4.<\/p>\n<p class=\"who-we-are__sub-text\">2008\ub144\uc5d0 \uc124\ub9bd\ub41c \ud06c\ub9ac\uc5d0\uc774\ud301\uc740 \uad6d\ub0b4 \uae30\uc5c5\uc758 \ub9c8\ucf00\ud305\uc740 \ubb3c\ub860<br \/>2015\ub144\ubd80\ud130 \ubcf8\uaca9\uc801\uc73c\ub85c \uae00\ub85c\ubc8c \ub9c8\ucf00\ud305 \uc601\uc5ed\uae4c\uc9c0 \ud655\uc7a5\ud558\uba70<br \/>\uc77c\ubcf8\uc5d0 \uc774\uc5b4 \ub300\ub9cc\uae4c\uc9c0 \ub3d9\uc544\uc2dc\uc544 \ucd5c\uace0\uc758 \ub9c8\ucf00\ud305 \uadf8\ub8f9\uc73c\ub85c \uc131\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4<\/p>\n<\/p><\/div>\n<div class=\"who-we-are__offices\">\n<div class=\"who-we-are__office\">\n                                <svg class=\"who-we-are__office-icon\" width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\">\n                                    <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#454545\" stroke-width=\"2\"\/>\n                                    <path d=\"M2 12h20M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z\" stroke=\"#454545\" stroke-width=\"2\"\/>\n                                <\/svg><br \/>\n                                <span class=\"who-we-are__office-text\">2022 \uc77c\ubcf8\uc9c0\uc0ac \uc124\ub9bd<\/span>\n                            <\/div>\n<div class=\"who-we-are__office\">\n                                <svg class=\"who-we-are__office-icon\" width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\">\n                                    <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#454545\" stroke-width=\"2\"\/>\n                                    <path d=\"M2 12h20M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z\" stroke=\"#454545\" stroke-width=\"2\"\/>\n                                <\/svg><br \/>\n                                <span class=\"who-we-are__office-text\">2025 \ub300\ub9cc\uc9c0\uc0ac \uc124\ub9bd\uc608\uc815<\/span>\n                            <\/div><\/div><\/div><\/div>\n<div class=\"who-we-are__milestones\">\n<div class=\"who-we-are__milestone\" style=\"background-image: url('assets\/milestone-1.png');\">\n                        <span class=\"who-we-are__milestone-text\">2020<br \/>\nsocial media<br \/>\nagency<\/span>\n                    <\/div>\n<div class=\"who-we-are__milestone\" style=\"background-image: url('assets\/milestone-1.png');\">\n                        <span class=\"who-we-are__milestone-text\">2021<br \/>\nIndipendent<br \/>\nagency<\/span>\n                    <\/div>\n<div class=\"who-we-are__milestone\" style=\"background-image: url('assets\/milestone-1.png');\">\n                        <span class=\"who-we-are__milestone-text\">2021<br \/>\nB2C Marketing<br \/>\nagency<\/span>\n                    <\/div>\n<div class=\"who-we-are__milestone who-we-are__milestone--with-badge\" style=\"background-image: url('assets\/milestone-1.png');\">\n                        <span class=\"who-we-are__milestone-text\">2022<br \/>\nB2B Marketing<br \/>\nagency<\/span><br \/>\n                        <img decoding=\"async\" src=\"assets\/agency-year.png\" alt=\"Campaign Agency of the Year Award\" class=\"who-we-are__milestone-badge\" loading=\"lazy\">\n                    <\/div><\/div><\/div>\n<div class=\"who-we-are__map\" role=\"img\" aria-label=\"Global presence map showing Korea, Japan, and Taiwan offices\">\n                <img decoding=\"async\" src=\"assets\/world-map.png\" alt=\"World map showing CREATIP's global presence\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/world-map.png\" alt=\"Highlighted regions: Korea, Japan, Taiwan\" loading=\"lazy\">\n            <\/div>\n<\/section>\n<p>        <!-- Line Separator --><\/p>\n<div class=\"line\">\n<div class=\"line__divider\"><\/div><\/div>\n<p>        <!-- We Do Section --><\/p>\n<section class=\"we-do\" aria-label=\"What we do\">\n<div class=\"we-do__wrapper\">\n<div class=\"we-do__content\">\n<div class=\"we-do__header\">\n<div class=\"we-do__dot\"><\/div>\n<h2 class=\"we-do__title\">We Do<\/h2>\n<\/p><\/div>\n<div class=\"we-do__items\">\n<div class=\"we-do__item\" data-index=\"0\">\n<div class=\"we-do__item-header\">\n                                <span class=\"we-do__item-text\">Global<\/span><\/p>\n<div class=\"we-do__item-icon\">\n                                    <svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                        <path d=\"M7 17L17 7M17 7H7M17 7V17\" stroke=\"#D3D3D3\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                    <\/svg>\n                                <\/div><\/div>\n<p class=\"we-do__item-description\">\uad6d\ub0b4 \uae30\uc5c5\uc758 \uae00\ub85c\ubc8c \uc9c4\ucd9c\ubd80\ud130 \uae00\ub85c\ubc8c \uae30\uc5c5\uc758 \uad6d\ub0b4 \ub9c8\ucf00\ud305\uae4c\uc9c0<\/p>\n<\/p><\/div>\n<div class=\"we-do__item\" data-index=\"1\">\n<div class=\"we-do__item-header\">\n                                <span class=\"we-do__item-text\">Performance<\/span><\/p>\n<div class=\"we-do__item-icon\">\n                                    <svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                        <path d=\"M7 17L17 7M17 7H7M17 7V17\" stroke=\"#D3D3D3\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                    <\/svg>\n                                <\/div><\/div>\n<p class=\"we-do__item-description\">\ub370\uc774\ud130 \uae30\ubc18\uc758 \uc131\uacfc \uc911\uc2ec \ub9c8\ucf00\ud305 \uc804\ub7b5\uacfc \ucd5c\uc801\ud654<\/p>\n<\/p><\/div>\n<div class=\"we-do__item\" data-index=\"2\">\n<div class=\"we-do__item-header\">\n                                <span class=\"we-do__item-text\">Marketing<\/span><\/p>\n<div class=\"we-do__item-icon\">\n                                    <svg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                        <path d=\"M7 17L17 7M17 7H7M17 7V17\" stroke=\"#D3D3D3\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                    <\/svg>\n                                <\/div><\/div>\n<p class=\"we-do__item-description\">\ube0c\ub79c\ub4dc \uad6c\ucd95\ubd80\ud130 \ud37c\ud3ec\uba3c\uc2a4\uae4c\uc9c0 \ud1b5\ud569 \ub9c8\ucf00\ud305 \uc194\ub8e8\uc158<\/p>\n<\/p><\/div><\/div><\/div>\n<div class=\"we-do__image-container\">\n                    <img decoding=\"async\" src=\"assets\/world-map.png\" alt=\"Global marketing services illustration\" class=\"we-do__image\" data-index=\"0\" loading=\"lazy\"><br \/>\n                    <img decoding=\"async\" src=\"assets\/project-1-662126.png\" alt=\"Performance marketing analytics\" class=\"we-do__image\" data-index=\"1\" loading=\"lazy\"><br \/>\n                    <img decoding=\"async\" src=\"assets\/project-2.png\" alt=\"Marketing strategy development\" class=\"we-do__image\" data-index=\"2\" loading=\"lazy\">\n                <\/div><\/div>\n<\/section>\n<p>        <!-- Line Separator --><\/p>\n<div class=\"line\">\n<div class=\"line__divider\"><\/div><\/div>\n<p>        <!-- Chart Section --><\/p>\n<section class=\"chart\" aria-label=\"Growth chart\">\n            <canvas class=\"chart__canvas\" id=\"chartCanvas\"><\/canvas><\/p>\n<p>            <!-- \uc0c1\uc2b9 \ucd94\uc138\uc120 \uc774\ubbf8\uc9c0 --><br \/>\n            <img decoding=\"async\" src=\"assets\/trend-line.png\" alt=\"Upward growth trend line from 2021 to 2025\" class=\"chart__trend-line\" id=\"trendLine\" loading=\"lazy\"><\/p>\n<div class=\"chart__bars\">\n<div class=\"chart__year\">\n<div class=\"chart__pill\">+12.4%<\/div>\n<div class=\"chart__bar\" style=\"height: 191px;\"><\/div>\n<p>                    <span class=\"chart__year-label\">2021<\/span>\n                <\/div>\n<div class=\"chart__year\">\n<div class=\"chart__pill\">+17.0%<\/div>\n<div class=\"chart__bar\" style=\"height: 250px;\"><\/div>\n<p>                    <span class=\"chart__year-label\">2022<\/span>\n                <\/div>\n<div class=\"chart__year\">\n<div class=\"chart__pill\">+23.97%<\/div>\n<div class=\"chart__bar chart__bar--teal-1\"><\/div>\n<p>                    <span class=\"chart__year-label\">2023<\/span>\n                <\/div>\n<div class=\"chart__year\">\n<div class=\"chart__pill\">+33.1%<\/div>\n<div class=\"chart__bar chart__bar--teal-2\"><\/div>\n<p>                    <span class=\"chart__year-label\">2024<\/span>\n                <\/div>\n<div class=\"chart__year\">\n<div class=\"chart__pill chart__pill--red\">+47.7%<\/div>\n<div class=\"chart__bar chart__bar--red\"><\/div>\n<p>                    <span class=\"chart__year-label\">2025<\/span>\n                <\/div><\/div>\n<div class=\"chart__content\">\n<div class=\"chart__text-group\">\n<div class=\"chart__header\">\n<div class=\"chart__dot\"><\/div>\n<h2 class=\"chart__section-title\">NO CEILING FOR CREATIP<\/h2>\n<\/p><\/div>\n<p class=\"chart__main-text\">2008\ub144\uc5d0 \uc124\ub9bd\ub41c \ud06c\ub9ac\uc5d0\uc774\ud301\uc740<br \/>\uc9c0\uae08\ub3c4 \ud55c\uacc4 \uc5c6\ub294 \uc131\uc7a5\uc744 \uc774\uc5b4\uac00\uace0 \uc788\uc2b5\ub2c8\ub2e4<\/p>\n<\/p><\/div><\/div>\n<\/section>\n<p>        <!-- Score Section --><\/p>\n<section class=\"score\" aria-label=\"Company statistics\">\n<div class=\"score__container\">\n<div class=\"score__item\">\n<div class=\"score__number\">16<\/div>\n<div class=\"score__label\">Years<\/div><\/div>\n<div class=\"score__divider\"><\/div>\n<div class=\"score__item\">\n<div class=\"score__number\">630<\/div>\n<div class=\"score__label\">Clients<\/div><\/div>\n<div class=\"score__divider\"><\/div>\n<div class=\"score__item\">\n<div class=\"score__number\">91<\/div>\n<div class=\"score__label\">Members<br \/><span style=\"color: #29FFBB;\">*\uc678\uad6d\uc5b4 \uac00\ub2a5\uba64\ubc84 39%<\/span><\/div><\/div><\/div>\n<\/section>\n<p>        <!-- Banner Section --><\/p>\n<section class=\"banner\" aria-label=\"News and announcements\">\n<div class=\"banner__container\">\n<div class=\"banner__inner\">\n<div class=\"banner__text\">\n<div class=\"banner__eyebrow\">\n                            <span class=\"banner__dot\"><\/span><\/p>\n<h2 class=\"banner__eyebrow-title\">News<\/h2>\n<\/p><\/div>\n<h3 class=\"banner__headline\">NAVER \uacf5\uc2dd\ub300\ud589\uc0ac \uc120\uc815<\/h3>\n<p class=\"banner__description\">\uc885\ud569\uad11\uace0\ub300\ud589\uc0ac \ud06c\ub9ac\uc5d0\uc774\ud301\uc774 \uad6d\ub0b4 \ucd5c\ub300 \ub514\uc9c0\ud138 \ud50c\ub7ab\ud3fc \ub124\uc774\ubc84(NAVER)\uc758 \uacf5\uc2dd \ud30c\ud2b8\ub108\uc0ac\ub85c \uc120\uc815\ub410\ub2e4\uace0 9\uc77c \ubc1d\ud614\ub2e4.<\/p>\n<p class=\"banner__description\">\ub124\uc774\ubc84 \uacf5\uc2dd \ud30c\ud2b8\ub108\uc0ac\ub294 \uae4c\ub2e4\ub85c\uc6b4 \ud3c9\uac00\ub97c \ud1b5\ud574 \uc18c\uc218\uc758 \uc804\ubb38 \uc5d0\uc774\uc804\uc2dc\uc5d0\ub9cc \ubd80\uc5ec\ub418\ub294 \uc790\uaca9\uc774\ub2e4.<\/p>\n<\/p><\/div>\n<div class=\"banner__aside\">\n<div class=\"banner__pager\">01 \/ 04<\/div>\n<div class=\"banner__pager-controls\">\n                            <button class=\"banner__pager-btn\" aria-label=\"Previous\"><br \/>\n                                <img decoding=\"async\" src=\"assets\/icon-caret.svg\" alt=\"\"><br \/>\n                            <\/button><br \/>\n                            <button class=\"banner__pager-btn\" aria-label=\"Next\"><br \/>\n                                <img decoding=\"async\" src=\"assets\/icon-caret.svg\" alt=\"\"><br \/>\n                            <\/button>\n                        <\/div><\/div><\/div><\/div>\n<div class=\"banner__image\">\n                <img decoding=\"async\" src=\"assets\/bg-banner.png\" alt=\"CREATIP and NAVER partnership announcement background\" loading=\"lazy\"><\/p>\n<div class=\"banner__logos\">\n                    <img decoding=\"async\" class=\"banner__logo-left\" src=\"assets\/logo-creatip-red.png\" alt=\"CREATIP logo\" loading=\"lazy\"><br \/>\n                    <span class=\"banner__logo-separator\">\u2715<\/span><br \/>\n                    <img decoding=\"async\" class=\"banner__logo-right\" src=\"assets\/logo-naver-black.png\" alt=\"NAVER logo\" loading=\"lazy\">\n                <\/div><\/div>\n<\/section>\n<p>        <!-- Line Separator --><\/p>\n<div class=\"line\">\n<div class=\"line__divider\"><\/div><\/div>\n<p>        <!-- Works Section --><\/p>\n<section class=\"works\" aria-label=\"Our projects\">\n<div class=\"works__text-box\">\n<div class=\"works__header\">\n<div class=\"works__dot\"><\/div>\n<h2 class=\"works__title\">Our Projects<\/h2>\n<\/p><\/div>\n<p class=\"works__description\">\uacac\uace0\ud55c \ud611\uc5c5\uacfc \ubbff\uc74c\uc774<br \/>\ud2b9\ubcc4\ud55c \uc131\uacfc\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<\/p><\/div>\n<div class=\"works__grid\">\n<article class=\"works__item\" style=\"background-image: linear-gradient(172deg, rgba(0, 0, 0, 0) 59%, rgba(30, 0, 255, 0.68) 100%), url('assets\/project-1-662126.png');\" role=\"img\" aria-label=\"Coway global performance marketing project\">\n<h3 class=\"works__item-title\">Coway<\/h3>\n<p class=\"works__item-subtitle\">\uae00\ub85c\ubc8c \ud37c\ud3ec\uba3c\uc2a4 \ub9c8\ucf00\ud305<\/p>\n<\/article>\n<article class=\"works__item\" style=\"background-image: linear-gradient(172deg, rgba(0, 0, 0, 0) 59%, rgba(0, 255, 149, 0.68) 100%), url('assets\/project-2.png');\" role=\"img\" aria-label=\"Marriott International global performance marketing project\">\n<h3 class=\"works__item-title\">\uba54\ub9ac\uc5b4\ud2b8 \uc778\ud130\ub124\uc154\ub110<\/h3>\n<p class=\"works__item-subtitle\">\uae00\ub85c\ubc8c \ud37c\ud3ec\uba3c\uc2a4 \ub9c8\ucf00\ud305<\/p>\n<\/article>\n<article class=\"works__item\" style=\"background-image: linear-gradient(172deg, rgba(0, 0, 0, 0) 59%, rgba(255, 85, 0, 0.68) 100%), url('assets\/project-3.png');\" role=\"img\" aria-label=\"Jeju Air social marketing project\">\n<h3 class=\"works__item-title\">Jeju Air<\/h3>\n<p class=\"works__item-subtitle\">\uc18c\uc15c\ub9c8\ucf00\ud305<\/p>\n<\/article><\/div>\n<div class=\"works__cta\">\n<p class=\"works__cta-text\">\ud504\ub85c\uc81d\ud2b8\uc758 \uc131\uc7a5\uc744 \ud06c\ub9ac\uc5d0\uc774\ud301\uacfc \ud568\uaed8 \ud558\uc138\uc694!<\/p>\n<p>                <button class=\"works__cta-button\"><br \/>\n                    <span>+ More Project<\/span><br \/>\n                <\/button>\n            <\/div>\n<\/section><\/div>\n<p>    <!-- Partners Section --><\/p>\n<section class=\"partners\" aria-label=\"Our partners\">\n<div class=\"partners__container\">\n<div class=\"partners__header\">\n<div class=\"partners__dot\"><\/div>\n<h2 class=\"partners__section-title\">OUR PARTNERS<\/h2>\n<\/p><\/div>\n<h3 class=\"partners__headline\">\uace0\uac1d\uacfc \ud568\uaed8 \uc131\uc7a5\ud558\uba70 <strong>\ucd5c\uace0\uc758 \ud37c\ud3ec\uba3c\uc2a4<\/strong>\ub97c \ub9cc\ub4e4\uc5b4 \uac11\ub2c8\ub2e4.<\/h3>\n<div class=\"partners__grid\">\n                <img decoding=\"async\" src=\"assets\/partner-01.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-02.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-03.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-04.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-05.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-06.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-07.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-08.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-09.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-10.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-11.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-12.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-13.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-14.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-15.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-16.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-17.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-18.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-19.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-20.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-21.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-22.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-23.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-24.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-25.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-26.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-27.png\" alt=\"Partner company logo\" loading=\"lazy\"><br \/>\n                <img decoding=\"async\" src=\"assets\/partner-28.png\" alt=\"Partner company logo\" loading=\"lazy\">\n            <\/div><\/div>\n<\/section>\n<p>    <script>\n        \/\/ ===== 1. Hero \ud0c0\uc774\ud551 \ud6a8\uacfc =====\n        function typeWriterEffect(element, text, speed = 50) {\n            let i = 0;\n            element.textContent = '';\n            element.style.opacity = '1';<\/p>\n<p>            function type() {\n                if (i < text.length) {\n                    element.textContent += text.charAt(i);\n                    i++;\n                    setTimeout(type, speed);\n                }\n            }\n            type();\n        }\n\n        window.addEventListener('load', () => {\n            const heroMainText = document.querySelector('.hero__main-text');\n            const heroSubText = document.querySelector('.hero__sub-text');<\/p>\n<p>            if (heroMainText && heroSubText) {\n                heroMainText.style.opacity = '0';\n                heroSubText.style.opacity = '0';<\/p>\n<p>                setTimeout(() => {\n                    typeWriterEffect(heroMainText, heroMainText.textContent, 30);\n                    setTimeout(() => {\n                        typeWriterEffect(heroSubText, heroSubText.textContent, 20);\n                    }, 1500);\n                }, 500);\n            }\n        });<\/p>\n<p>        \/\/ ===== 2. GNB Glass \ud6a8\uacfc - \ud788\uc5b4\ub85c \ubc97\uc5b4\ub098\uba74 glass \ud6a8\uacfc \uc801\uc6a9 =====\n        const gnb = document.querySelector('.gnb');\n        const hero = document.querySelector('.hero');<\/p>\n<p>        if (gnb && hero) {\n            window.addEventListener('scroll', () => {\n                const heroRect = hero.getBoundingClientRect();<\/p>\n<p>                if (heroRect.bottom < 0) {\n                    gnb.classList.add('gnb--glass');\n                } else {\n                    gnb.classList.remove('gnb--glass');\n                }\n            });\n        }\n\n        \/\/ ===== 3. Sky Button - \ud788\uc5b4\ub85c \ubc97\uc5b4\ub098\uba74 \ub098\ud0c0\ub0a8 + \uc2a4\ud06c\ub864 \ub530\ub77c \uc774\ub3d9 =====\n        const skyButton = document.querySelector('.sky-button');\n\n        if (skyButton &#038;&#038; hero) {\n            skyButton.style.opacity = '0';\n            skyButton.style.transform = 'translateX(100px)';\n            skyButton.style.transition = 'opacity 0.5s, transform 0.5s';\n\n            window.addEventListener('scroll', () => {\n                const heroRect = hero.getBoundingClientRect();<\/p>\n<p>                if (heroRect.bottom < 0) {\n                    skyButton.style.opacity = '1';\n                    skyButton.style.transform = 'translateX(0)';\n                } else {\n                    skyButton.style.opacity = '0';\n                    skyButton.style.transform = 'translateX(100px)';\n                }\n            });\n        }\n\n        \/\/ ===== 4. Who We Are \uc139\uc158 - \uc0ac\uc120 \ubaa8\uc158 + \ud0c0\uc774\ud2c0 \ud398\uc774\ub4dc\uc778 =====\n        const observerOptions = {\n            threshold: 0.2,\n            rootMargin: '0px'\n        };\n\n        const whoWeAreObserver = new IntersectionObserver((entries) => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    const title = entry.target.querySelector('.who-we-are__title');\n                    const milestones = entry.target.querySelectorAll('.who-we-are__milestone');\n                    const map = entry.target.querySelector('.who-we-are__map');<\/p>\n<p>                    \/\/ \ud0c0\uc774\ud2c0 \uc544\ub798\uc5d0\uc11c \uc704\ub85c \ud398\uc774\ub4dc\uc778\n                    if (title) {\n                        setTimeout(() => {\n                            title.style.opacity = '1';\n                            title.style.transform = 'translateY(0)';\n                        }, 100);\n                    }<\/p>\n<p>                    \/\/ \ub9c8\uc77c\uc2a4\ud1a4 \uc0ac\uc120 \ubaa8\uc158\n                    milestones.forEach((milestone, index) => {\n                        setTimeout(() => {\n                            milestone.style.opacity = '1';\n                            milestone.style.transform = 'translate(0, 0)';\n                        }, 200 + (index * 100));\n                    });<\/p>\n<p>                    \/\/ \uc9c0\ub3c4 \uc0ac\uc120 \ubaa8\uc158\n                    if (map) {\n                        setTimeout(() => {\n                            map.style.opacity = '1';\n                            map.style.transform = 'translate(0, 0)';\n                        }, 600);\n                    }<\/p>\n<p>                    whoWeAreObserver.unobserve(entry.target);\n                }\n            });\n        }, observerOptions);<\/p>\n<p>        const whoWeAreSection = document.querySelector('.who-we-are');\n        if (whoWeAreSection) {\n            \/\/ \ucd08\uae30 \uc0c1\ud0dc \uc124\uc815\n            const title = whoWeAreSection.querySelector('.who-we-are__title');\n            const milestones = whoWeAreSection.querySelectorAll('.who-we-are__milestone');\n            const map = whoWeAreSection.querySelector('.who-we-are__map');<\/p>\n<p>            if (title) {\n                title.style.opacity = '0';\n                title.style.transform = 'translateY(30px)';\n                title.style.transition = 'opacity 0.8s, transform 0.8s';\n            }<\/p>\n<p>            milestones.forEach((milestone, index) => {\n                milestone.style.opacity = '0';\n                milestone.style.transform = 'translate(-50px, 50px)';\n                milestone.style.transition = `opacity 0.6s ${0.2 + index * 0.1}s, transform 0.6s ${0.2 + index * 0.1}s`;\n            });<\/p>\n<p>            if (map) {\n                map.style.opacity = '0';\n                map.style.transform = 'translate(50px, -50px)';\n                map.style.transition = 'opacity 0.8s, transform 0.8s';\n            }<\/p>\n<p>            whoWeAreObserver.observe(whoWeAreSection);\n        }<\/p>\n<p>        \/\/ ===== 5. We Do \uc139\uc158 - \ub9c8\uc6b0\uc2a4 \ud638\ubc84 \uc778\ud130\ub799\ud2f0\ube0c \ud6a8\uacfc =====\n        const weDoSection = document.querySelector('.we-do');\n        if (weDoSection) {\n            const items = weDoSection.querySelectorAll('.we-do__item');\n            const images = weDoSection.querySelectorAll('.we-do__image');<\/p>\n<p>            \/\/ \ucd08\uae30 \uc124\uc815\n            items.forEach((item) => {\n                item.style.opacity = '0';\n                item.style.transform = 'translateY(50px)';\n                item.style.transition = 'opacity 0.8s ease, transform 0.8s ease';\n            });<\/p>\n<p>            \/\/ \uccab \ubc88\uc9f8 \uc774\ubbf8\uc9c0 \ucd08\uae30 \ud65c\uc131\ud654\n            if (images.length > 0) {\n                images[0].classList.add('active');\n            }<\/p>\n<p>            \/\/ \ucd08\uae30 \ud398\uc774\ub4dc\uc778 \uc560\ub2c8\uba54\uc774\uc158\n            const initialObserver = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        items.forEach((item, index) => {\n                            setTimeout(() => {\n                                item.style.opacity = '1';\n                                item.style.transform = 'translateY(0)';\n                            }, index * 200);\n                        });\n                        initialObserver.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            initialObserver.observe(weDoSection);<\/p>\n<p>            \/\/ \uc2a4\ud06c\ub864 \uc2dc \uc124\uba85 \ud14d\uc2a4\ud2b8 \ud45c\uc2dc\n            const descriptionObserver = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        entry.target.classList.add('active');\n                    }\n                });\n            }, {\n                threshold: 0.6,\n                rootMargin: '-10% 0px -10% 0px'\n            });<\/p>\n<p>            items.forEach(item => descriptionObserver.observe(item));<\/p>\n<p>            \/\/ \ub9c8\uc6b0\uc2a4 \ud638\ubc84 \ud6a8\uacfc\n            items.forEach(item => {\n                item.addEventListener('mouseenter', () => {\n                    const index = item.dataset.index;<\/p>\n<p>                    \/\/ \ubaa8\ub4e0 \uc544\uc774\ud15c \ube44\ud65c\uc131\ud654\n                    items.forEach(i => i.classList.remove('active'));\n                    \/\/ \ubaa8\ub4e0 \uc774\ubbf8\uc9c0 \uc228\uae30\uae30\n                    images.forEach(img => img.classList.remove('active'));<\/p>\n<p>                    \/\/ \ud604\uc7ac \uc544\uc774\ud15c \ud65c\uc131\ud654\n                    item.classList.add('active');\n                    \/\/ \ud574\ub2f9 \uc774\ubbf8\uc9c0 \ud45c\uc2dc\n                    const activeImage = weDoSection.querySelector(`.we-do__image[data-index=\"${index}\"]`);\n                    if (activeImage) {\n                        activeImage.classList.add('active');\n                    }\n                });\n            });<\/p>\n<p>            \/\/ \uc139\uc158\uc744 \ubc97\uc5b4\ub098\uba74 \ubaa8\ub4e0 \ud6a8\uacfc \uc81c\uac70\n            weDoSection.addEventListener('mouseleave', () => {\n                items.forEach(item => item.classList.remove('active'));\n                images.forEach(img => img.classList.remove('active'));\n            });\n        }<\/p>\n<p>        \/\/ ===== 6. Chart \uc139\uc158 - \uc5ed\ub3d9\uc801\uc778 \ud280\uc5b4\uc624\ub974\ub294 \uc560\ub2c8\uba54\uc774\uc158 =====\n        const chartObserver = new IntersectionObserver((entries) => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    const years = entry.target.querySelectorAll('.chart__year');<\/p>\n<p>                    years.forEach((year, index) => {\n                        const pill = year.querySelector('.chart__pill');\n                        const bar = year.querySelector('.chart__bar');\n                        const yearLabel = year.querySelector('.chart__year-label');<\/p>\n<p>                        if (index === 4) { \/\/ 2025\ub144 \ud2b9\ubcc4 \uc560\ub2c8\uba54\uc774\uc158\n                            \/\/ \ubc14\uac00 \ube60\ub974\uac8c \ud280\uc5b4\uc624\ub984\n                            setTimeout(() => {\n                                bar.style.transform = 'scaleY(1)';\n                                bar.style.opacity = '1';\n                            }, index * 150);<\/p>\n<p>                            \/\/ \ubc14 \uc560\ub2c8\uba54\uc774\uc158 \ud6c4 pill\uc774 \ud280\uc5b4\uc624\ub984\n                            setTimeout(() => {\n                                pill.style.opacity = '1';\n                                pill.style.transform = 'translateY(0)';<\/p>\n<p>                                \/\/ \uc22b\uc790 \uce74\uc6b4\ud2b8\uc5c5\n                                const pillText = pill.textContent;\n                                const match = pillText.match(\/([+]?)(\\d+)(\\.\\d+)?%\/);\n                                if (match) {\n                                    const plus = match[1] || '';\n                                    const hasDecimal = match[3] ? true : false;\n                                    const endValue = parseFloat(match[2] + (match[3] || ''));\n                                    let currentValue = 0;\n                                    const increment = endValue \/ 30;\n                                    const counter = setInterval(() => {\n                                        currentValue += increment;\n                                        if (currentValue >= endValue) {\n                                            pill.textContent = hasDecimal ? `${plus}${endValue.toFixed(1)}%` : `${plus}${Math.round(endValue)}%`;\n                                            clearInterval(counter);\n                                        } else {\n                                            pill.textContent = hasDecimal ? `${plus}${currentValue.toFixed(1)}%` : `${plus}${Math.round(currentValue)}%`;\n                                        }\n                                    }, 20);\n                                }\n                            }, index * 150 + 500);<\/p>\n<p>                            setTimeout(() => {\n                                yearLabel.style.opacity = '1';\n                            }, index * 150 + 700);\n                        } else {\n                            \/\/ \uc77c\ubc18 \uc5f0\ub3c4: \ubc14 \ud280\uc5b4\uc624\ub984\n                            setTimeout(() => {\n                                bar.style.transform = 'scaleY(1)';\n                                bar.style.opacity = '1';\n                            }, index * 150);<\/p>\n<p>                            \/\/ pill \ud280\uc5b4\uc624\ub984\n                            setTimeout(() => {\n                                pill.style.opacity = '1';\n                                pill.style.transform = 'translateY(0)';\n                            }, index * 150 + 400);<\/p>\n<p>                            \/\/ year label \ub098\ud0c0\ub0a8\n                            setTimeout(() => {\n                                yearLabel.style.opacity = '1';\n                            }, index * 150 + 500);\n                        }\n                    });<\/p>\n<p>                    \/\/ \ud14d\uc2a4\ud2b8 \uc601\uc5ed slideUp\n                    const chartContent = entry.target.querySelector('.chart__content');\n                    if (chartContent) {\n                        setTimeout(() => {\n                            chartContent.style.opacity = '1';\n                            chartContent.style.transform = 'translateY(0)';\n                        }, 300);\n                    }<\/p>\n<p>                    \/\/ \ubaa8\ub4e0 \uc560\ub2c8\uba54\uc774\uc158 \ud6c4 \ucd94\uc138\uc120 \ud45c\uc2dc\n                    setTimeout(() => {\n                        const trendLine = document.getElementById('trendLine');\n                        if (trendLine) {\n                            trendLine.classList.add('visible');\n                        }\n                    }, 4 * 150 + 1000); \/\/ \ub9c8\uc9c0\ub9c9 \ubc14(index 4) \uc560\ub2c8\uba54\uc774\uc158 + 1\ucd08 \ud6c4<\/p>\n<p>                    chartObserver.unobserve(entry.target);\n                }\n            });\n        }, observerOptions);<\/p>\n<p>        const chartSection = document.querySelector('.chart');\n        if (chartSection) {\n            const pills = chartSection.querySelectorAll('.chart__pill');\n            const bars = chartSection.querySelectorAll('.chart__bar');\n            const yearLabels = chartSection.querySelectorAll('.chart__year-label');\n            const chartContent = chartSection.querySelector('.chart__content');<\/p>\n<p>            pills.forEach((pill) => {\n                pill.style.opacity = '0';\n                pill.style.transition = 'opacity 0.4s ease, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1)';\n            });<\/p>\n<p>            bars.forEach((bar, index) => {\n                bar.style.opacity = '0';\n                \/\/ 2025\ub144(\ub9c8\uc9c0\ub9c9 \ubc14)\uc740 \ub354 \ube60\ub974\uac8c\n                if (index === 4) {\n                    bar.style.transition = 'transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease';\n                } else {\n                    bar.style.transition = 'transform 1s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease';\n                }\n            });<\/p>\n<p>            yearLabels.forEach((label) => {\n                label.style.opacity = '0';\n                label.style.transition = 'opacity 0.3s ease';\n            });<\/p>\n<p>            if (chartContent) {\n                chartContent.style.opacity = '0';\n                chartContent.style.transform = 'translateY(40px)';\n                chartContent.style.transition = 'opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1)';\n            }<\/p>\n<p>            chartObserver.observe(chartSection);\n        }<\/p>\n<p>        \/\/ ===== 7. Score \uc139\uc158 - \uce74\uc6b4\ud305 \ubaa8\uc158 + slideUp =====\n        function animateCounter(element, target) {\n            let current = 0;\n            const increment = target \/ 100;\n            const timer = setInterval(() => {\n                current += increment;\n                if (current >= target) {\n                    element.textContent = target;\n                    clearInterval(timer);\n                } else {\n                    element.textContent = Math.floor(current);\n                }\n            }, 20);\n        }<\/p>\n<p>        const scoreObserver = new IntersectionObserver((entries) => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    const items = entry.target.querySelectorAll('.score__item');<\/p>\n<p>                    items.forEach((item, index) => {\n                        setTimeout(() => {\n                            item.style.opacity = '1';\n                            item.style.transform = 'translateY(0)';<\/p>\n<p>                            \/\/ \uce74\uc6b4\ud130 \uc560\ub2c8\uba54\uc774\uc158\n                            const number = item.querySelector('.score__number');\n                            if (number && index === 0) animateCounter(number, 16);\n                            if (number && index === 1) animateCounter(number, 630);\n                            if (number && index === 2) animateCounter(number, 91);\n                        }, index * 150);\n                    });<\/p>\n<p>                    scoreObserver.unobserve(entry.target);\n                }\n            });\n        }, observerOptions);<\/p>\n<p>        const scoreSection = document.querySelector('.score');\n        if (scoreSection) {\n            const items = scoreSection.querySelectorAll('.score__item');\n            items.forEach((item) => {\n                item.style.opacity = '0';\n                item.style.transform = 'translateY(50px)';\n                item.style.transition = 'opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1)';\n            });<\/p>\n<p>            scoreObserver.observe(scoreSection);\n        }<\/p>\n<p>        \/\/ ===== 8. Partners \uc139\uc158 - \uc21c\ucc28 slideUp \uc560\ub2c8\uba54\uc774\uc158 =====\n        const partnersObserver = new IntersectionObserver((entries) => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    const header = entry.target.querySelector('.partners__header');\n                    const headline = entry.target.querySelector('.partners__headline');\n                    const partnerImages = entry.target.querySelectorAll('.partners__grid img');<\/p>\n<p>                    \/\/ \ud5e4\ub354 \uba3c\uc800 \ud45c\uc2dc\n                    if (header) {\n                        setTimeout(() => {\n                            header.style.opacity = '1';\n                            header.style.transform = 'translateY(0)';\n                        }, 100);\n                    }<\/p>\n<p>                    \/\/ \ud5e4\ub4dc\ub77c\uc778\n                    if (headline) {\n                        setTimeout(() => {\n                            headline.style.opacity = '1';\n                            headline.style.transform = 'translateY(0)';\n                        }, 200);\n                    }<\/p>\n<p>                    \/\/ \ud30c\ud2b8\ub108 \ub85c\uace0\ub4e4 \uc21c\ucc28 \uc560\ub2c8\uba54\uc774\uc158\n                    partnerImages.forEach((img, index) => {\n                        setTimeout(() => {\n                            img.style.opacity = '1';\n                            img.style.transform = 'translateY(0)';\n                        }, 400 + index * 30); \/\/ 30ms \uac04\uaca9\uc73c\ub85c \uc21c\ucc28 \uc560\ub2c8\uba54\uc774\uc158\n                    });\n                    partnersObserver.unobserve(entry.target);\n                }\n            });\n        }, observerOptions);<\/p>\n<p>        const partnersSection = document.querySelector('.partners');\n        if (partnersSection) {\n            const header = partnersSection.querySelector('.partners__header');\n            const headline = partnersSection.querySelector('.partners__headline');\n            const partnerImages = partnersSection.querySelectorAll('.partners__grid img');<\/p>\n<p>            if (header) {\n                header.style.opacity = '0';\n                header.style.transform = 'translateY(40px)';\n                header.style.transition = 'opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1)';\n            }<\/p>\n<p>            if (headline) {\n                headline.style.opacity = '0';\n                headline.style.transform = 'translateY(40px)';\n                headline.style.transition = 'opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1)';\n            }<\/p>\n<p>            partnerImages.forEach((img) => {\n                img.style.opacity = '0';\n                img.style.transform = 'translateY(30px)';\n                img.style.transition = 'opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), transform 0.5s cubic-bezier(0.4, 0, 0.2, 1)';\n            });<\/p>\n<p>            partnersObserver.observe(partnersSection);\n        }<\/p>\n<p>        \/\/ ===== 9. Works \uc139\uc158 - \uc694\uc18c\ubcc4 \uc544\ub798\uc5d0\uc11c \uc704\ub85c =====\n        const worksObserver = new IntersectionObserver((entries) => {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    const textBox = entry.target.querySelector('.works__text-box');\n                    const workItems = entry.target.querySelectorAll('.works__item');\n                    const cta = entry.target.querySelector('.works__cta');<\/p>\n<p>                    \/\/ \ud14d\uc2a4\ud2b8 \ubc15\uc2a4\n                    if (textBox) {\n                        setTimeout(() => {\n                            textBox.style.opacity = '1';\n                            textBox.style.transform = 'translateY(0)';\n                        }, 100);\n                    }<\/p>\n<p>                    \/\/ \ud504\ub85c\uc81d\ud2b8 \uce74\ub4dc\ub4e4 \uc21c\ucc28 \uc560\ub2c8\uba54\uc774\uc158\n                    workItems.forEach((item, index) => {\n                        setTimeout(() => {\n                            item.style.opacity = '1';\n                            item.style.transform = 'translateY(0)';\n                        }, 200 + index * 150);\n                    });<\/p>\n<p>                    \/\/ CTA \ubc84\ud2bc\n                    if (cta) {\n                        setTimeout(() => {\n                            cta.style.opacity = '1';\n                            cta.style.transform = 'translateY(0)';\n                        }, 200 + workItems.length * 150 + 200);\n                    }<\/p>\n<p>                    worksObserver.unobserve(entry.target);\n                }\n            });\n        }, {\n            threshold: 0.05,\n            rootMargin: '100px'\n        });<\/p>\n<p>        const worksSection = document.querySelector('.works');\n        if (worksSection) {\n            const textBox = worksSection.querySelector('.works__text-box');\n            const workItems = worksSection.querySelectorAll('.works__item');\n            const cta = worksSection.querySelector('.works__cta');<\/p>\n<p>            if (textBox) {\n                textBox.style.opacity = '0';\n                textBox.style.transform = 'translateY(40px)';\n                textBox.style.transition = 'opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1)';\n            }<\/p>\n<p>            workItems.forEach((item) => {\n                item.style.opacity = '0';\n                item.style.transform = 'translateY(60px)';\n                item.style.transition = 'opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1)';\n            });<\/p>\n<p>            if (cta) {\n                cta.style.opacity = '0';\n                cta.style.transform = 'translateY(40px)';\n                cta.style.transition = 'opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1)';\n            }<\/p>\n<p>            worksObserver.observe(worksSection);\n        }<\/p>\n<p>        \/\/ ===== Hero Slider =====\n        const heroSlides = document.querySelectorAll('.hero__gradient');\n        const heroDots = document.querySelectorAll('.hero__dot');\n        let currentSlide = 0;\n        let heroSliderInterval;<\/p>\n<p>        function showSlide(index) {\n            \/\/ Remove active class from all slides and dots\n            heroSlides.forEach(slide => slide.classList.remove('active'));\n            heroDots.forEach(dot => {\n                dot.classList.remove('active');\n                dot.setAttribute('aria-selected', 'false');\n            });<\/p>\n<p>            \/\/ Add active class to current slide and dot\n            heroSlides[index].classList.add('active');\n            heroDots[index].classList.add('active');\n            heroDots[index].setAttribute('aria-selected', 'true');<\/p>\n<p>            currentSlide = index;\n        }<\/p>\n<p>        function nextSlide() {\n            const nextIndex = (currentSlide + 1) % heroSlides.length;\n            showSlide(nextIndex);\n        }<\/p>\n<p>        function startHeroSlider() {\n            heroSliderInterval = setInterval(nextSlide, 5000); \/\/ Change slide every 5 seconds\n        }<\/p>\n<p>        function stopHeroSlider() {\n            clearInterval(heroSliderInterval);\n        }<\/p>\n<p>        \/\/ Dot click handlers\n        heroDots.forEach((dot, index) => {\n            dot.addEventListener('click', () => {\n                stopHeroSlider();\n                showSlide(index);\n                startHeroSlider();\n            });\n        });<\/p>\n<p>        \/\/ Start the slider\n        startHeroSlider();<\/p>\n<p>        \/\/ ===== 10. Chart \uc139\uc158 - \ubcc4 \uc560\ub2c8\uba54\uc774\uc158 + \uaca9\uc790 (Canvas) =====\n        const chartCanvas = document.getElementById('chartCanvas');\n        if (chartCanvas) {\n            const ctx = chartCanvas.getContext('2d');\n            const chartSection = document.querySelector('.chart');<\/p>\n<p>            function resizeCanvas() {\n                chartCanvas.width = chartSection.offsetWidth;\n                chartCanvas.height = chartSection.offsetHeight;\n            }\n            resizeCanvas();\n            window.addEventListener('resize', resizeCanvas);<\/p>\n<p>            const stars = [];\n            const starCount = 150;<\/p>\n<p>            for (let i = 0; i < starCount; i++) {\n                stars.push({\n                    x: Math.random() * chartCanvas.width,\n                    y: Math.random() * chartCanvas.height,\n                    radius: Math.random() * 2,\n                    opacity: Math.random(),\n                    speed: Math.random() * 0.0008 + 0.0002\n                });\n            }\n\n            function drawGrid() {\n                const gridSize = 50;\n                ctx.strokeStyle = 'rgba(255, 255, 255, 0.1)';\n                ctx.lineWidth = 1;\n\n                \/\/ \uc138\ub85c\uc120\n                for (let x = 0; x < chartCanvas.width; x += gridSize) {\n                    ctx.beginPath();\n                    ctx.moveTo(x, 0);\n                    ctx.lineTo(x, chartCanvas.height);\n                    ctx.stroke();\n                }\n\n                \/\/ \uac00\ub85c\uc120\n                for (let y = 0; y < chartCanvas.height; y += gridSize) {\n                    ctx.beginPath();\n                    ctx.moveTo(0, y);\n                    ctx.lineTo(chartCanvas.width, y);\n                    ctx.stroke();\n                }\n            }\n\n            function animateStars() {\n                ctx.clearRect(0, 0, chartCanvas.width, chartCanvas.height);\n\n                \/\/ \uaca9\uc790 \uadf8\ub9ac\uae30\n                drawGrid();\n\n                \/\/ \ubcc4 \uadf8\ub9ac\uae30\n                stars.forEach(star => {\n                    star.opacity += star.speed;\n                    if (star.opacity > 1 || star.opacity < 0) {\n                        star.speed *= -1;\n                    }\n\n                    ctx.beginPath();\n                    ctx.arc(star.x, star.y, star.radius, 0, Math.PI * 2);\n                    ctx.fillStyle = `rgba(255, 255, 255, ${star.opacity})`;\n                    ctx.fill();\n                });\n\n                requestAnimationFrame(animateStars);\n            }\n\n            animateStars();\n        }\n    <\/script><br \/>\n<\/body><br \/>\n<\/html><\/p>","protected":false},"excerpt":{"rendered":"<p>\ud06c\ub9ac\uc5d0\uc774\ud301 &#8211; East Asia&#8217;s No.1 Marketing Group | CREATIP East Asia&#8217;s No.1 Marketing group Join creatip, with global marketing experience [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"..\/public\/views\/revslider-page-template.php","meta":{"om_disable_all_campaigns":false,"footnotes":""},"class_list":["post-2120","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/pages\/2120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/comments?post=2120"}],"version-history":[{"count":4,"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/pages\/2120\/revisions"}],"predecessor-version":[{"id":2124,"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/pages\/2120\/revisions\/2124"}],"wp:attachment":[{"href":"http:\/\/creatip.co.kr\/zh\/wp-json\/wp\/v2\/media?parent=2120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}