body, html {
    height: 100%;
    /* height: 100dvh; */
}
body.ys_hideCursor,
body.ys_hideCursor a,
body.ys_hideCursor button {
    cursor: none !important;
}

.ys:after {
    animation: grain 5s steps(10) infinite;
    opacity: .5;
    background-image: url(../images/noise.jpeg);
    content: "";
    height: 300%;
    left: -50%;
    opacity: .03;
    z-index: 0;
    position: fixed;
    top: -110%;
    width: 300%;
    pointer-events: none;
}
@keyframes grain{0%,100%{transform:translate(0,0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%,0)}70%{transform:translate(0,15%)}80%{transform:translate(3%,35%)}90%{transform:translate(-10%,10%)}}


/* .ys { */
:root  {
    /* breakpoint */
    --wide-scrn: 1440px;

    /* elements dimension */
    --header-hght: 48px;

    /* colour */
    --bg-color: #fff;
    --black: #000;
    --grey: #676767;
    --subtle-grey: #cacaca;
    --light-grey: #e7e7e7;
    --ys-blue: #fff;
    --ys-border-color-1: rgba(34, 34, 34, 0.25);

    /* font family */
    --font-tc: 'Noto Serif TC', serif;

    /* font size */
    --font-size-main-title: 48px;
    --font-size-sec-title: 40px;
    --font-size-subtitle: 32px;
    --font-size-paragrag-title: 24px;
    --font-size-1: 12px;
    --font-size-3: 16px;
    --font-size-2: 14px;

    /* text color */
    --text-color-1: #1d1d1d;

    /* spacing */
    --max-wdth-1: 1440px;
    --outer-space-side: 80px;
    --cnt-typ-1-wdth: 800px;
    
    --max-wdth-cnt: calc(var(--wide-scrn) - var(--outer-space-side) * 2);

    --div-space-bot-1: 96px;
    --div-space-bot-2: 48px;
    --div-space-bot-3: 24px;
    --div-space-bot-4: 12px;
    --div-space-bot-5: 56px;

    --div-spacing-1: 90px;
    --div-spacing-2: 70px;
    --div-spacing-3: 40px;
    --div-spacing-4: 32px;
    --div-spacing-5: 24px;
    --div-spacing-6: 16px;

    /* config */
    font-family: var(--font-tc);
    background-color: var(--bg-color);
    /* color: var(--bg-black); */
    color: var(--text-color-1);
    font-size: var(--font-size-3);
    min-height: -webkit-fill-available;
}
.ys.landing {
    background: #000;
}
.ys.landing .ys_btn_wrapper:hover .ys_btn:after {
    background: var(--light-grey);
}
.ys ::selection {
    background: var(--ys-blue);
    color: var(--light-grey);
}
.ys * {
    font-family: Arial, sans-serif;
}
.ys img {
    display: block;
}
.ys a {
    text-decoration: none;
    /* color: #000; */
    color: inherit;
}
.ys .ys_link {
    text-decoration: underline;
}
::-webkit-scrollbar,
* > ::-webkit-scrollbar {
    width: 0;
    height: 0;
}
.ys_btn_wrapper {
    display: inline-block;
    overflow: hidden;
    width: fit-content;
    padding-bottom: 1.5px;
    position: relative;
    vertical-align: middle;
}
.ys_btn {
    cursor: pointer;
}
.ys_btn_intrnlnk_dcr {
    vertical-align: text-top;
}
.ys_btn_wrapper .ys_btn {
    position: relative;
    display: block;
    padding: 3px 0;
}
.ys_btn_wrapper .ys_btn:after {
    position: absolute;
    content: '';
    width: 100%;
    height: 1.5px;
    background: #000;
    bottom: -1.5px;
    left: 0;
    transform: translateX(-101%);
    transition: all .3s ease-out;
}
.ys_btn_wrapper:hover .ys_btn:after, .ys_btn.hovering:after {
    transform: translateX(0);
}

.ys p {
    line-height: 1.25;
}
.ys button {
    padding: 0;
}
.ys main {
    position: relative;
    z-index: 1;
}
.ys_subpage_main {
    /* margin-top: 100px; */
}
.ys_header {
    mix-blend-mode: difference;
    top: 0;
    padding: var(--div-space-bot-1) var(--outer-space-side) 0;
    margin: 0 auto;
    margin-bottom: var(--div-space-bot-1);
    max-width: var(--max-wdth-cnt);
    /* position: relative; */
    position: sticky;
    z-index: 2;
    /* z-index: auto; */
    /* background-color: #fff; */
    background-color: transparent;
}
.ys_header_inn {
    display: flex;
    justify-content: space-between;
    max-width: 1280px;
    align-items: center;
}
.ys_logo {
    height: var(--header-hght);
    mix-blend-mode: difference;
    display: block;
    z-index: 1;
    transform: translateX(-10px);
}
.ys_logo img {
    height: 140%;
    transform: translateY(-15%);
}
.ys_nav .icn {
    height: 30px;
    width: 30px;
    display: flex;
    align-items: center;
}
.ys_nav .icn img {
    height: 80%;
    margin: auto;
}
.ys_nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-transform: uppercase;
    /* padding: 0 var(--outer-space-side); */
    width: 100%;
    z-index: 1;
    /* max-width: 622px; */
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none; /* IE 10 and IE 11 */
    user-select: none; /* Standard syntax */
}
.ys_nav ul {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    align-items: center;
    font-size: var(--font-size-1);
}
.ys_nav ul li {
    margin-left: 48px;
}
.ys_nav ul li.ig {
    margin-left: 56px;
}
.ys_nav ul li a {
    text-decoration: none;
    color: var(--light-grey);
    transition: all .3s ease-in-out;
    line-height: 1.2;
    display: block;
    /* margin-left: ; */
}
.ys_nav ul li a:hover,
.ys_nav ul li a.disabled {
    /* color: var(--ys-blue); */
    /* font-weight: 900; */
    opacity: .5;
}
.ys_nav ul li a.active {
    /* pointer-events: none; */
}
.ys_btn_hamburger {
    display: none;
}

.ys .ys_blue_txt {
    color: var(--ys-blue);
}
.ys .ys_lightgrey_txt {
    color: var(--light-grey)
}



.ys_wrapper_cnt {
    margin: 0 auto;
    padding: 0 var(--outer-space-side);
    max-width: 1440px;
    box-sizing: border-box;
}
.ys_container_cnt_typ_1 {
    max-width: var(--cnt-typ-1-wdth);
    margin: 0 auto
}

.ys_lyt_cnt {
    margin: 0 auto;
    padding: 0 var(--outer-space-side);
}

.ys_lyt_lt,
.ys_lyt_rt {
    margin: 0 auto;
    padding: 0;
}


/* font */
.ys_main_title {
    font-size: var(--font-size-main-title);
    font-weight: 600;
    text-transform: uppercase;
    line-height: normal;
}

.ys_subtitle {
    font-size: var(--font-size-subtitle);
    font-weight: 400;
}
.ys_sect_title {
    font-size: var(--font-size-sec-title);
}

.ys_vert_txt {
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 4px;
}
/* 404 */
.ys_404 {
    color: var(--light-grey);
}
.ys_404 .ys_hero {
    text-align: center;
}
.ys_404 .ys_main_title {
    /* font-size: var(--font-size-main-title); */
    font-size: 120px;
    margin-bottom: 8px;
}
.ys_404 .ys_subtitle {
    font-size: var(--font-size-paragrag-title);
}
.ys_404 .ys_hero_btns {
    text-align: center;
}
.ys_404 .ys_hero_btns .ys_btn_wrapper {
    margin-left: -15px;
}
/* LANDING */
.ys_main_landing {
    padding-bottom: 96px;
}
.ys.landing .ys_btn_wrapper .ys_btn:after {
    background: var(--light-grey);
}
.ys_hero {
    max-width: 100vw;
    height: calc(100vh - 200px - 144px);
    height: calc(100dvh - 200px - 144px);
    min-height: 376px;
    margin-top: calc(0px - var(--div-space-bot-1));
    box-sizing: border-box;
    display: flex;
    align-items: center;
    position: relative;
    margin-bottom: var(--div-space-bot-1);
}
.ys_hero_txt_wrapper {
    margin: 0 auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.ys_hero_txt_wrapper .ys_vert_txt {
    margin: 0 auto;
}
.ys_hero_txt_wrapper .ys_hero_title {
    /* margin-bottom: var(--div-space-bot-3); */
    position: relative;
    /* color: #d6d6d6; */
    /* letter-spacing: 15px; */
}
.ys_hero_txt_wrapper .ys_hero_subtitle {
    font-size: var(--font-size-paragrag-title);
    margin-bottom: var(--div-space-bot-3);
    font-weight: 800;
    max-width: 500px;
}
.ys_hero_txt_wrapper .ys_hero_subtitle img {
    max-width: 100%;
}
.ys_hero_txt_wrapper .ys_hero_title_overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    letter-spacing: 4px;
    text-transform: uppercase;
    /* transform: translate(-50%, -50%) scale(.8); */
    transform: translate(-50%, -50%) scaleY(.85) scaleX(1.05);
    font-size: var(--font-size-paragrag-title);
    color: #000;
    font-weight: 800;
}
.ys_hero_txt_wrapper .ys_hero_desc {
    line-height: 2;
    color: #fff;
    transform: translateY(-150%);
    text-transform: uppercase;
    letter-spacing: 5px;
    font-weight: 600;
}
.ys_desc_space {
    margin-right: 16px;
}
.ys_hero_btns {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}
.ys_hero_btns .ys_btn,
.ys_clients, .ys_btn {
    color: var(--light-grey);
}
.ys_hero_btns .ys_btn_wrapper:not(:first-child) {
    margin-left: var(--div-space-bot-2);
}
.ys_selected_showcase {
    margin-bottom: var(--div-space-bot-1);
}
.ys_selected_showcase .ys_cont_wrapper .ys_upper {
    display: flex;
}
.ys_selected_showcase .ys_sect_title {
    line-height: 1.5;
    font-weight: 600;
    flex-shrink: 0;
    position: sticky;
    top: calc(144px + var(--div-space-bot-1));
    /* padding-bottom: calc(var(--div-space-bot-3) + var(--div-spacing-5)); */
    /* height: 88px; */
    height: calc(220px - 24.3px);
    writing-mode: vertical-lr;
}
.ys_selected_showcase_gly {
    width: 100%;
    margin-left: var(--div-spacing-3);
    margin-bottom: var(--div-space-bot-3);
}
.ys_showcase_row {
    display: flex;
    align-items: start;
    margin-bottom: var(--div-space-bot-3);
}
.ys_showcase_row:last-child {
    /* margin-bottom: 0; */
}
.ys_showcase_item {
    box-sizing: border-box;
    position: relative;
    display: block;
}
.ys_showcase_item_inner {
    position: relative;
    display: block;
}
.ys_showcase_item_inner .ys_pjInfo_name {
    color: var(--light-grey);
}
.ys_showcase_item .ys_btn_showcase_url {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.ys_showcase_row .ys_showcase_item {
    padding-right: var(--div-spacing-5);
}
.ys_showcase_row:nth-child(odd) .ys_showcase_item:first-child {
    /* width: 55%; */
    width: 50%;
    flex-shrink: 0;
}
.ys_showcase_row:nth-child(even) .ys_showcase_item:first-child {
    /* width: 45%; */
    width: 50%;
    flex-shrink: 0;
}
.ys_showcase_row .ys_pj_desc {
    margin-top: auto;
    line-height: 1.5;
    color: var(--light-grey);
}
.ys_showcase_item {
    /* display: flex; */
    display: block;
    width: 100%;
    transition: opacity .3s;
}
.ys_showcase_item:hover{
    opacity: .5;

}
.ys_showcase_item .ys_pj_cover {
    width: 100%;
    margin-right: var(--div-spacing-5);
    margin-bottom: var(--div-space-bot-4);
    border-radius: 12px;
    overflow: hidden;

}
.ys_showcase_item .ys_pj_cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ys_selected_showcase  .ys_lower {
    text-align: end;
    padding-right: var(--div-spacing-5);
}

.ys_clients {
    min-height: calc(100vh - 144px - 96px - 200px);
}
.ys_client_btns {
    text-align: center;
}
.ys_clients .ys_sect_title {
    text-align: center;
    font-weight: 600;
    margin-bottom: var(--div-space-bot-2);
    color: var(--light-grey);
}
.ys_clients_list {
    /* display: grid; */
    /* grid-template-columns: repeat(5, minmax(112px,auto)); */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}
.ys_client_item {
    /* width: 100%; */
    /* width: 20%; */
    width: 25%;
    min-width: 144px;
    /* height: 150px; */
    box-sizing: border-box;
    padding: 0 18px 0;
    margin-bottom: var(--div-spacing-2);
}
.ys_client_item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* background: #fff; */
}

/* layout - center content  */
.ys_content_cnt {
    max-width: 1280px;
}
/* layout - to right */
.ys_wrapper_rt .ys_content_cnt {
    margin: 0 auto 0 0
}
.ys_wrapper_rt {
    margin-left: var(--outer-space-side);
    /* padding-right: var(--outer-space-side); */
}
.ys_wrapper_rt .ys_content_container {
    max-width: 1280px;
    margin-right: auto;
}
/* layout - to left */
.ys_wrapper_lt {
    margin-right: var(--outer-space-side);
    padding-left: var(--outer-space-side);
}
.ys_wrapper_lt .ys_content_container {
    max-width: 1280px;
    margin-right: auto;
}
/* layout - half & half */
.ys_lyt_split {
    display: flex;
}
.ys_lyt_split .ys_lyt_inn_lt,
.ys_lyt_split .ys_lyt_inn_rt {
    width: 50%;
    box-sizing: border-box;
}
.ys_lyt_split_type_2 .ys_lyt_inn_lt {
    width: 100%;
}
.ys_lyt_split_type_2 .ys_lyt_inn_rt {
    /* width: 45%; */
    width: 48%;
    flex-shrink: 0;
}


/* form */
.ys input {
    -webkit-apperance: none;
    appearance: none;
    border-radius: 0;
}
.ys_input_wrapper {
    margin-bottom: 8px;
    position: relative;
}
.ys_input_wrapper input[type="text"],
.ys_input_wrapper input[type="number"],
.ys_input_wrapper input[type="tel"],
.ys_input_wrapper input[type="email"],
.ys_input_wrapper textarea {
    border-radius: 0;
    width: 100%;
    /* margin: 0 0 8px 0; */
    padding: 8px;
    box-sizing: border-box;
    resize: none;
    border: none;
    border-bottom: 1px solid var(--black);
    background: transparent;
}
.ys_input_wrapper textarea {
    min-width: 100%;
}
.ys_ipt_row.ys_split {
    display: flex;
}
.ys_ipt_row.ys_split .ys_input_wrapper {
    width: 50%;
}
.ys_ipt_row.ys_split .ys_input_wrapper:nth-child(odd) {
    margin-right: 8px;
}
.ys_ipt_row.ys_split .ys_input_wrapper:nth-child(even) {
    margin-left: 8px;
}

.ys_input_wrapper label {
    position: absolute;
    color: var(--grey);
    font-size: var(--font-size-3);
    top: 10px;
    pointer-events: none;
    transform-origin: left top;
    transition: .3s ease-in-out;
}
.ys_input_wrapper label.active {
    color: var(--black);
    transform: scale(.5);
    top: 0;
}

/* ABOUT US */
.ys_main_abt {
    padding-bottom: 50px;
}
.ys_main_abt h1 {
    margin: 0 auto;
    font-size: var(--font-size-main-title);
    text-align: center;
    font-weight: 600;
    margin-bottom: 50px;
}
.ys_abt_intro .ys_lyt_inn_lt {
    width: 35%;
}
.ys_abt_intro .ys_lyt_inn_rt {
    padding-left: 75px;
    width: 65%;
    display: flex;
    align-items: center;
}
.ys_abt_intro .ys_lyt_inn_rt p {
    line-height: 1.5;
}




/* CONTACT */
.ys_main_contact {
    /* padding-bottom: 250px; */
}
.ys_main_contact h2 {
    text-align: center;
}
#ys_form_contact {
    margin-top: -8px;
}
#ys_form_contact textarea {
    height: 160px;
}
.ys_btn_address {
    line-height: 1.5;
}
.ys_btn_address:hover {
    opacity: .5;
}
.ys_btn_ws_wrapper {
    /* margin-left: 8px; */
}
.ys_btn_ws {
    height: 22px;
    width: 22px;
    background: url(/images/icn_ws.png) no-repeat center;
    background-size: 15px 15px;
    display: block;
}
.ys_divider_tel {
    height: 14px;
    width: 2px;
    background: var(--subtle-grey);
    margin: auto 8px;
}
#ys_contact_tel {
    display: flex;
    margin-right: 8px;
}


.ys .ys_fullscreen_page {
    /* position: absolute; */
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    top: 0;
    left: 0;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.ys .ys_fullscreen_page.ys_subpage_main {
    padding-top: calc(var(--div-space-bot-1) * 2 + var(--header-hght));
    margin-top: calc(0px - var(--div-space-bot-1) * 2 - var(--header-hght));
}

/* PROJECTS MENU */
.ys_work_title_wrapper {
    border-bottom: 1px solid var(--black);
    padding-right: var(--outer-space-side);
    padding-bottom: 8px;
    flex-shrink: 0;
}
.ys_work_title_wrapper .ys_lyt_inn_lt {
    padding-right: var(--div-spacing-5);
    flex-shrink: 0;
    width: auto;
    min-width: 50%;
}
.ys_work_title_wrapper .ys_lyt_inn_rt {
    display: flex;
    align-items: center;
    padding-left: var(--div-spacing-5);
}
.ys_work_tag_list {
    max-width: 100%;
    overflow: hidden;
    font-size: var(--font-size-2);
    white-space: nowrap;
    position: relative;
}
/* .ys_work_tag_list ul { */
.ys_work_tag_list_inner {
    padding-left: var(--div-spacing-4);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,0) 24px, rgba(0,0,0,1) 32px, rgba(0,0,0,1) calc(100% - 72px), rgba(0,0,0,0) calc(100% - 24px));
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
}
.ys_work_tag_list ul {
    /* padding-right: 48px; */
    padding-right: 55px;
    padding-right: 58px;
}
.ys_work_tag_list .ys_btn_scroll {
    width: 30px;
    height: 30px;
    background: url(../images/arrow_rt.svg) center / 65% 65% no-repeat;
    border: none;
    position: absolute;
    right: -10px;
    opacity: 0;
    transition: opacity .3s ease-in-out;
}
.ys_work_tag_list .ys_btn_scroll.active {
    opacity: 1;
}
.ys_work_tag_list .ys_btn_slide_lt {
    left: -10px;
    right: auto;
    transform: scaleX(-1);
}
.ys_work_tag_list .ys_btn_tag {
    display: inline-block;
    color: var(--black);
    transition: all .3s ease-in-out;
    font-weight: 900;
    background: none;
    border: none;
    font-size: 16px;
}
.ys_work_tag_list .ys_btn_tag:hover,
.ys_work_tag_list .ys_btn_tag.active {
    color: var(--grey);
    opacity: .5;
}
.ys_work_tag_list .ys_btn_tag:not(:first-child) {
    margin-left: var(--div-spacing-4);
}


/* PROJECT */
.ys_pjList {
    height: calc(100% - 59px);
    box-sizing: border-box;
}
.ys_pjList_opt_wrapper {
    padding: 0 var(--outer-space-side) 0  var(--div-spacing-5);
    height: 100%;
    overflow: auto;
}
.ys_pjList_opt {
    max-width: 640px;
    padding-top: var(--div-space-bot-2);
    padding-bottom: var(--div-space-bot-2);
}
.ys_pjList li {
    display: block;
    height: 0;
    opacity: 0;
    overflow: hidden;
    transition: height .3s ease-in-out, opacity .4s ease-in-out;
    transition-delay: .15s;
    position: relative;
}
.ys_pjList li::after {
    content: '';
    position: absolute;
    height: 1px;
    width: 100%;
    background: var(--black);
    bottom: 0;
    left: 0;
    opacity: 0;
    transition: all .3s ease-in-out;
    /* transition-delay: .3s; */
}
.ys_pjList li.active {
    transition-delay: 0s;
    height: 67px;
    opacity: 1;
}
.ys_pjList li.active::after {
    left: 0;
    opacity: 1;

}
.ys_pjList li.active.last::after {
    opacity: 0;
}


.ys_pjList .ys_btn_pj {
    display: flex;
    padding: 16px 0;
    text-decoration: none;
    line-height: normal;
    font-size: var(--font-size-paragrag-title);
    color: var(--black);
    overflow: hidden;
    white-space: nowrap;
    -webkit-touch-callout: none;
}
.ys_pjList .ys_btn_pj::before {
    content: "\2192"; /* → */
    display: block;
    overflow: hidden;
    transition: all .3s ease-in-out;
    margin-left: calc(0px - (var(--font-size-paragrag-title) + 10px));
    width: calc(var(--font-size-paragrag-title) + 10px);
    opacity: 0;
    flex-shrink: 0;
}
.ys_pjList .ys_btn_pj span {
    max-width: 100%;
    text-overflow: ellipsis;
    display: block;
    overflow: hidden;
}
.ys_pjList .ys_btn_pj:hover::before {
    margin-left: 0;
    opacity: 1;
}
.ys_pjList_cover {
    padding: var(--div-space-bot-2)  var(--div-spacing-5) 0 0;
    opacity: 0;
    transition: all .3s ease-in-out;
}
.ys_pjList_cover.active {
    opacity: 1;
}
.ys_pjCover_wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 0 12px 0 0;
    overflow: hidden;
}
.ys_pjList_cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity .3s ease-in-out;
}
.ys_pjList_cover img.active {
    opacity: 1;
}
.ys_pjList_cover,
.ys_pjList_opt_wrapper {
    height: 100%;
}

.ys_pjList .ys_pjList_inn {
    height: 100%;
}


/* DETAILS */
.ys_pjInfo_wrapper,
.ys_pjVid_wrapper ,
.ys_pjGLY_wrapper {
    margin-bottom: var(--div-space-bot-5);
}
.ys_main_title_wrapper {
    max-width: 1440px;
}
.ys_pjInfo_cover {
    display: none;
    height: auto;
    object-fit: cover;
    width: 100%;
    position: relative;
    min-height: 400px;
    max-height: 500px;

    max-width: 1200px;
    margin-left: auto;
}
.ys_pjInfo_txt_wrapper {
    /* padding-right: var(--outer-space-side); */
}
.ys_pjInfo_cover img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}
.ys_pjInfo_txt {
    /* max-width: 576px; */
    /* padding-left: var(--div-space-bot-2); */
}
.ys_pjInfo_client {
    font-weight: 800;
}
.ys_pjTag_list_wrapper {
    /* margin: 8px 0 var(--div-space-bot-2); */
}
.ys_pjTag {
    display: inline-block;
    margin-right: 25px;
    font-size: var(--font-size-2);
    text-transform: uppercase;
}

.ys_main_workDetail .ys_subtitle {
    padding-left: var(--div-spacing-6);
    font-weight: 800;
    border-left: 2px solid #000;
    margin-bottom: 24px;
}
.ys_pjInfo_list {
    margin-bottom: 16px;
    font-size: var(--font-size-paragrag-title);
    display: grid;
    grid-template-columns: auto auto;
}
.ys_pjInfo_desc {
    /* margin-top: var(--div-space-bot-3); */
    font-size: var(--font-size-paragrag-title);
}

.ys_pjInfo_item {
    line-height: 1.5;
    padding-bottom: 16px;
}
.ys_pjInfo_name {
    text-transform: uppercase;
    color: #767676;
    font-size: 16px;
    line-height: 1.4;
}
.ys_pjInfo_content {
    font-weight: 600;
}
.ys_pjGLY_wrapper h2 {
    position: relative;
    max-width: 1280px;
}
.ys_pjGLY_indctr {
    position: absolute;
    top: 16px;
    font-size: 16px;
    font-weight: 400;
    right: var(--outer-space-side);
}
.ys_GLY {
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    height: 450px;
    padding: 0 var(--outer-space-side);
    font-size: 0;
    display: block;
}
.ys_nowrap {
    white-space: nowrap;
}
.ys_GLY .ys_GLY_btn {
    display: inline-block;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 0;
    padding: 0;
    height: 100%;
    margin-right: 8px;
    border-radius: 12px;
    overflow: hidden;
}
.ys_GLY .ys_GLY_btn:last-child {
    margin-right: 0;
}
.ys_GLY .ys_GLY_btn img {
    height: 100%;
    width: auto;
}

.ys_vid_container {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56%;
}
.ys_igPost_container iframe {
    margin-left: auto !important;
    margin-right: auto !important;
}
.ys_vid_container:not(:last-child) {
    margin-bottom: var(--div-space-bot-3);
}
.ys_vid_container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
        
}

.ys_pjCrtl {
    border-top: 1px solid #000;
    display: flex;
    justify-content: space-between;
    padding: var(--div-spacing-3) 0 0;
}

.ys_pjCrtl button {
    border: none;
    background: transparent;
    cursor: pointer;
}
.ys_btn_prvPj, .ys_btn_nxtPj {
    display: block;
    min-width: 44px;
    min-height: 44px;
    line-height: 1.25;
}
.ys_btn_nxtPj {
    text-align: end;
}
.ys_main_workDetail {
    padding-bottom: var(--div-spacing-3);
}
.ys_main_workDetail .ys_main_title_wrapper {
    margin-bottom: var(--div-space-bot-5);
}
.ys_main_workDetail .ys_btn_wrapper_back {
    margin-top: -23.5px;
    margin-bottom: 8px;
    /* margin-bottom: var(--div-space-bot-4); */
}
.ys_main_workDetail .ys_main_title {
    margin-bottom: 8px;
}
.ys_main_workDetail .ys_btn_back {
    text-decoration: none;
}




/* CONTACT */
.ys_list_grid_type_2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(65px,auto));
}

.ys_contact_wrapper {
    display: flex;
    padding-bottom: var(--div-spacing-2);
}
.ys_contact_lt {
    width: 35%;
    flex-shrink: 0;
    max-width: 476px;
}
.ys_contact_rt {
    width: 100%;
    height: auto;
    position: relative;
    /* min-height: 580px; */
    max-width: 884px;
    padding-left: var(--div-space-bot-1);
}
.ys_form {
    transition: .3s ease-in-out;
}
.ys_form.hide {
    opacity: 0;
}
.ys_contact_rt .ys_prmpt {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: -1;
    display: flex;
    opacity: 0;
    align-items: center;
    justify-content: center;
    transition: .3s ease-in-out;
}
.ys_form_msg {
    display: none;
}
.ys_contact_rt .ys_prmpt.show {
    z-index: 1;
    opacity: 1;
}
.ys_contact_rt .ys_prmpt .ys_btn_closePrmpt {
    position: absolute;
    right: 0;
    top: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    background: none;
    justify-content: center;
    text-align: center;
}
.ys_contact_content a {
    text-decoration: none;
    color: #000;
    white-space: nowrap;
}
.ys_contact_rt img {
    object-fit: cover;
    /* position: absolute; */
    /* top: 0; */
    /* left: 0; */
    margin: auto;
    display: block;
    width: 80%;
    height: 80%;
    max-width: 800px;
}

.ys_divider {
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
    border-bottom: 1px solid var(--ys-border-color-1);
    margin-bottom: var(--div-spacing-2);
}

.ys_main_contact .ys_main_title {
    /* margin-bottom: var(--div-spacing-2); */
    margin-bottom: var(--div-space-bot-5);
    
}
.ys_main_contact .ys_contact_rt .ys_main_title {
    text-align: start;
    text-transform: none;
    font-weight: 400;
}
.ys_contact_name {
    padding-right: var(--div-spacing-5);
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.3;
}
.ys_contact_item {
    /* display: block; */
}
.ys_contact_item:not(:last-child) td {
    padding-bottom: var(--div-spacing-5);
}

.ys_contact_wrapper .ys_contact_list {
    margin-bottom: 100px;
}

.ys_sm_list_name {
    font-weight: 700;
    margin-bottom: 22px;
}

.ys_sm_item:not(:last-child) {
    margin-bottom: 15px;
}

.ys_btn_submitForm {
    margin: 0 auto;
    text-align: center;
    border: none;
    /* border-bottom: 1px solid var(--ys-border-color-1); */
    background: transparent;
    /* font-family: 'Noto Serif TC'; */
    font-size: var(--font-size-paragrag-title);
    color: var(--black);
}
.ys_txtArea_wrapper {
    margin-bottom: var(--div-spacing-5);
}
.ys_submit_wrapper {
    text-align: end;
}
.ys_btn_tag {
    text-transform: uppercase;
}
@media (min-width: 1440px) {
    .ys_wrapper_rt {
        margin-left: auto;
        margin-left: calc((100vw - 1280px) / 2);
    }
    .ys_lyt_split_type_2 {
        margin-right: calc((100vw - 1280px) / 2);
    }
    .ys_lyt_split_type_2 .ys_lyt_inn_rt {
        max-width: 530px;
        flex-shrink: 0;
        padding-right: 0;
        margin-right: 0;
    }
    .ys_GLY {
        padding-left: calc((100vw - 1280px) / 2);
        padding-right: calc((100vw - 1280px) / 2);
    }
}

@media (min-width: 993px) {
    .ys_m_show {
        display: none !important;
    }
}

@media (max-width: 992px) {
    .ys {
        /* colour */
        --black: #000;
        --grey: #676767;
        --ys-blue: #31616f;
        /* font family */
        /* --font-tc: 'Noto Serif TC', serif; */
        --font-tc: Arial, sans-serif;
        /* font size */
        --font-size-main-title: 32px;
        --font-size-sec-title: 24px;
        --font-size-subtitle: 20px;
        --font-size-paragrag-title: 16px;
        --font-size-1: 12px;
        --font-size-3: 16px;
        --font-size-2: 14px;
        /* spacing */
        --outer-space-side: 24px;
        --outer-space-side-half: 12px;
        --cnt-typ-1-wdth: 800px;
    
        --div-space-bot-1: 64px;
        --div-space-bot-2: 40px;
        --div-space-bot-3: 16px;

        --div-spacing-1: 90px;
        --div-spacing-2: 70px;
        --div-spacing-3: 50px;
        --div-spacing-6: 8px;
    
        /* config */
        font-family: var(--font-tc);
        background-color: var(--bg-color);
        color: var(--bg-black);
        font-size: var(--font-size-3);
    }
    .ys_work_tag_list .ys_btn_slide_lt {
        /* background-color: #fbfbfb; */
        left: 44px;
        z-index: 999;
    }
    .ys_work_tag_list_inner {
        margin-left: 22px;
    }
    .ys main {
        transition: opacity .2s ease-in-out, transform .4s ease-in-out;
    }
    .ys.nav_show main {
        transform: translateY(-50px);
        opacity: 0;
    }
    .ys_404 .ys_main_title {
        font-size: 80px;
    }
    .ys .ys_fullscreen_page.ys_subpage_main {
        padding-top: 0;
        position: static;
        margin-top: 0;
    }
    .ys_hero {
        height: calc(100vh - 48px - 144px);
        height: calc(100dvh - 48px - 144px);
    }
    .ys_selected_showcase .ys_cont_wrapper .ys_upper {
        display: block;
    }
    .ys_selected_showcase .ys_sect_title {
        position: static;
        padding-right: 24px;
        padding-bottom: var(--div-space-bot-3);
        height: auto;
        writing-mode: unset;
        text-align: center;
    }
    .ys_pjGLY_indctr {
        top: 4px
    }
    .ys_selected_showcase_gly {
        width: 100%;
        margin-left: 0;
        margin-bottom: var(--div-space-bot-3);
    }
    .ys_showcase_row {
        display: block;
        margin-bottom: 0;
    }
    .ys_showcase_item {
        margin-bottom: var(--div-space-bot-2);
    }
    .ys_showcase_row .ys_showcase_item {
        padding-right: var(--div-spacing-5);
    }
    .ys_showcase_row:nth-child(odd) .ys_showcase_item:first-child,
    .ys_showcase_row:nth-child(even) .ys_showcase_item:first-child {
        width: 100%;
    }
    .ys_showcase_row .ys_pj_desc {
        margin-top: auto;
        line-height: 1.5;
    }
    .ys_showcase_item {
        display: block;
        width: 100%;
    }
    .ys_showcase_item .ys_pj_cover {
        width: 100%;
        margin-right: 0;

    }
    .ys_showcase_item .ys_pj_cover img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }
    .ys_clients {
        padding: 0;
    }
    .ys_client_btns {
        padding: 0 var(--outer-space-side);
    }
    .ys_clients_list {
        box-sizing: border-box;
        padding: 0 var(--outer-space-side-half);
    }
    .ys_client_item {
        width: 50%;
        max-width: 242px;
        height: auto;
        margin-bottom: var(--div-spacing-2);
        box-sizing: border-box;
        padding: 0 var(--outer-space-side-half) 0;
    }


    .ys_nav_wrapper {
        padding: 0
    }
    .ys_abt_intro {
        display: block;
    }
    .ys_abt_intro .ys_lyt_inn_lt {
        width: 100%;
        margin-bottom: 50px;
    }
    .ys_abt_intro .ys_lyt_inn_lt img {
        margin: 0 auto;
    }
    .ys_abt_intro .ys_lyt_inn_rt {
        padding-left: 0;
        width: 100%;
        display: block;
    }
    .ys_abt_intro .ys_lyt_inn_rt p {
        line-height: 1.5;
    }
    .ys_nav .ig {
        margin-top: 20px;
    }
    .ys_nav .icn {
        height: 50px;
        width: auto;
    }

    .ys_d_show {
        display: none !important;
    }

    .ys_work_tag_list_inner {
        height: 112px;
    }
 
    .ys_header {
        z-index: 2;
        /* z-index: auto; */
        /* margin-bottom: 100px; */
        /* position: fixed;
        top: 0;
        left: 0;
        width: 100%; */
    }
    .ys_logo {
        /* position: fixed; */
        /* top: 50px; */
        /* left: var(--outer-space-side); */
        /* transform: translateX(0); */
        /* margin: 0; */
        z-index: 2;
    }
    .ys_nav {
        display: flex;
        justify-content: center;
        align-items: center;
        pointer-events: none;
        position: fixed;
        width: 100vw;
        /* height: 100vh; */
        height: 100%;
        top: 0;
        left: 0;
        box-sizing: border-box;
        padding: var(--outer-space-side);
        transition: opacity .3s ease-in-out;
        background: #000;
        color: #c9c9c9;
        font-weight: 200;
        max-width: none;
        opacity: 0;
        z-index: 1;
    }
    .ys_nav ul li {
        margin-left: 0;
        /* margin-bottom: 12px; */
        margin-bottom: 16px;
        font-weight: 600;
    }
    .ys_nav ul li.ig {
        margin-left: 0;
        font-weight: 400;
    }
    .ys_nav.active {
        opacity: 1;
        pointer-events: auto;
    }
    .ys_nav ul {
        font-size: var(--font-size-main-title);
        /* font-size: var(--font-size-subtitle); */
        /* margin-top: 24px; */
        margin-top: auto;
        margin-bottom: 40px;
        flex-direction: column;
        align-items: flex-start;
        counter-reset: js-nav-counter;
    }
    .ys_nav ul li a {
        line-height: normal;
        /* display: inline; */
        display: flex;
    }
    .ys_nav ul li a::before {
        counter-increment: js-nav-counter;
        content: "0" counter(js-nav-counter);
        margin-right: 4px;
        font-size: 10px;
        display: block;
        padding-top: 4px;
    }
    .ys_nav ul li.ig a::before {
        opacity: 0;
    }
    

    .ys_btn_hamburger {
        mix-blend-mode: difference;
        display: block;
        position: fixed;
        top: var(--div-space-bot-1);
        right: var(--outer-space-side);
        border: none;
        background: transparent;
        width: 48px;
        height: 48px;
        z-index: 2;
    }
    .ys_hamburger {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 25px;
        height: 20px;
    }
    .ys_hamburger::before,
    .ys_hamburger::after {
        content: '';
    }
    .ys_hamburger::before,
    .ys_hamburger::after,
    .ys_hamburger span {
        display: block;
        position: absolute;
        height: 2px;
        width: 100%;
        background: #fff;
        opacity: 1;
        left: 0;
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-transition: .25s ease-in-out;
        -moz-transition: .25s ease-in-out;
        -o-transition: .25s ease-in-out;
        transition: .25s ease-in-out;
    }
    .ys_hamburger::before {
        top: 0px;
        -webkit-transform-origin: left center;
        -moz-transform-origin: left center;
        -o-transform-origin: left center;
        transform-origin: left center;
    }
    .ys_hamburger span {
        top: 50%;
        margin-top: -1px;
        -webkit-transform-origin: left center;
        -moz-transform-origin: left center;
        -o-transform-origin: left center;
        transform-origin: left center;
    }
    .ys_hamburger::after {
        bottom: 0;
        -webkit-transform-origin: left center;
        -moz-transform-origin: left center;
        -o-transform-origin: left center;
        transform-origin: left center;
    }
    .ys_hamburger.open::before {
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -o-transform: rotate(45deg);
        transform: rotate(45deg);
        top: 0;
        left: 2.5px;

    }
    .ys_hamburger.open span {
        width: 0%;
        opacity: 0;
    }
    .ys_hamburger.open::after {
        -webkit-transform: rotate(-45deg);
        -moz-transform: rotate(-45deg);
        -o-transform: rotate(-45deg);
        transform: rotate(-45deg);
        left: 2.5px;
    }
    .ys_pjList_cover {
        display: none;
    }
    .ys_pjList
    .ys_lyt_split
    .ys_pjList_opt_wrapper {
        width: 100%;
        padding: 0 var(--outer-space-side);
    }

    .ys_work_title_wrapper .ys_lyt_split {
        flex-wrap: wrap;
    }
    .ys_work_title_wrapper .ys_lyt_inn_lt {
        width: 100%;
    }


    .ys_main_work .ys_work_title_wrapper {
        padding-bottom: 20px;
    }
    .ys_main_work .ys_main_title {
        margin-bottom: 20px;
    }

    .ys_pjList_opt {
        padding-top: 0;
        max-width: none;
    }
    .ys_pjList .ys_btn_pj {
        padding: 24px 0;
    }
    .ys_work_title_wrapper .ys_lyt_inn_rt {
        padding-left: 0;
        width: 100%;
    }

    .ys_main_work.ys_fullscreen_page {
        position: static;
        height: auto;
        width: auto;
        padding-top: 0;
    }

    .ys_pjInfo_wrapper {
        flex-wrap: wrap;
    }
    .ys_lyt_split_type_2 .ys_lyt_inn_lt {
        width: 100%;
        margin-right: var(--font-size-subtitle);
    }
    .ys_lyt_split_type_2 .ys_lyt_inn_rt {
        width: 100%;
    }
    .ys_pjInfo_txt {
        max-width: none;
        padding: 0 0 0 var(--outer-space-side);
        padding-left: 0;
    }
    .ys_pjInfo_cover {
        min-height: 200px;
    }
    .ys_GLY {
        height: 300px;
    }




    /* CONTACT */
    .ys_contact_wrapper {
        /* flex-flow: column-reverse; */
        /* flex-flow: column; */
    }
    .ys_contact_rt {
        padding-left: 0;
    }
    .ys_contact_wrapper .ys_contact_lt {
        width: 40%;
        padding-right: var(--outer-space-side);
        /* margin-top: var(--outer-space-side); */
        box-sizing: border-box;
    }
}

.ys_cursor {
/* cursor */
position: fixed;
width: 20px;
height: 20px;
/* square with 50% border-radius = circle */
border-radius: 50%;
/* add drop-shadow */
-webkit-box-shadow: 0 10px 20px 5px rgba(0, 0, 0, 0.125);
        box-shadow: 0 10px 20px 5px rgba(0, 0, 0, 0.125);
/* cursor colour: white */
background: #ffffff;
/* smooth transition, fast pace at first */
/* -webkit-transition: all 0.3s ease;
transition: all 0.3s ease; */
-webkit-transition-property: background, -webkit-transform;
transition-property: background, -webkit-transform;
transition-property: background, transform;
transition-property: background, transform, -webkit-transform;
-webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
/* bring to the top layer */
z-index: 999999;
/* prevent pointer events that failed to detect a tag link */
pointer-events: none;
-webkit-transform-origin: 100% 100%;
        transform-origin: 100% 100%;
/* chagne different colour when overlap with other white element */
mix-blend-mode: difference;
transition: background .15s ease-in-out, width .15s ease-in-out, height .15s ease-in-out, transform .1s ease-in-out, mix-blend-mode 1s ease-in-out;

}
.ys_cursor::after {
    content: "";
    opacity: 0;
    transition: opacity .15s ease-in-out;
}
/* .ys_cursor.link-grow.explore { */
.ys_cursor.explore {
    width: 30px;
    height: 30px;
    background: transparent;
    -webkit-backdrop-filter: contrast(80%);
            backdrop-filter: contrast(80%);
    border: 1px solid #fff;
}
.ys_cursor.explore::after {
    position: absolute;
    top: 50%;
    left: 50%;
    content: "\002B";
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    text-align: center;
    justify-content: center;
    /* background-color: #000; */
    /* mix-blend-mode: normal; */
    opacity: 1;
border-radius: 50%;
    font-size: 25px;
    color: #fff;
}
.ys_cursor.link-grow {
    width: 60px;
    height: 60px;
    /* no background colour */
    background: transparent;
    /* add outstroke to the circle */
    border: 1px solid #ffffff;
    /* change colour of element that below the cursor */
    -webkit-backdrop-filter: contrast(80%);
            backdrop-filter: contrast(80%);
}
.ys_cursor.click {
    -webkit-transform: scale(2);
    transform: scale(2);
}

@media (max-width: 768px) {
    .ys_contact_wrapper {
        flex-wrap: wrap;
    }
    .ys_contact_wrapper .ys_contact_lt {
        width: 100%;
        /* height: calc(100dvh - 112px - var(--div-space-bot-1) - var(--div-space-bot-2) /1.5); */
        padding-right: 0;
        max-width: none;
        display: flex;
        flex-direction: column;
        /* max-height: 530px; */
        /* min-height: 444px; */
    }
    .ys_contact_wrapper .ys_contact_list {
        width: 100%;
        margin-bottom: var(--div-spacing-3);
    }
    .ys_contact_address {
        margin-top: auto;
        margin-bottom: var(--div-space-bot-1);
    }
    .ys_contact_wrapper .ys_contact_rt {
        height: calc(100dvh - 112px - var(--div-space-bot-1) - var(--div-spacing-2));
    }
}

@media (max-width: 500px) {
    .ys_hero {
        max-height: 656px;
    }
    .ys_hero_txt_wrapper .ys_hero_subtitle {
        /* margin-top: -20%; */
    }
    .ys_hero_btns {
        text-align: center;
    }
    .ys_hero_txt_wrapper .ys_hero_desc {
        transform: translateY(-110%);
        letter-spacing: 0;
        font-weight: 100;
    }
    .ys_desc_space {
        margin-right: 8px;
    }
    .ys_pjInfo_list {
        display: block;
    }
}
@media (pointer: coarse) {
    body.ys_hideCursor,
    body.ys_hideCursor a,
    body.ys_hideCursor button {
        cursor: auto !important;
    }
    .ys_cursor {
        display: none !important;
    }
    /* .ys_work_tag_list .ys_btn_scroll  { */
    .ys_work_tag_list .ys_btn_slide_lt {
        /* display: none; */
    }
}