@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&family=Noto+Serif+TC:wght@200;300;400;500;600;700;900&display=swap");

@font-face {
    font-family: "Butler_Regular";
    src: url(../fonts/Butler_Regular.otf);
}

@font-face {
    font-family: "Butler_Light";
    src: url(../fonts/Butler_Light.otf);
}

@font-face {
    font-family: "Butler_Bold";
    src: url(../fonts/Butler_Bold.otf);
}

.NotoSansTC {
    font-family: "Noto Sans TC";
    font-weight: 300;
    letter-spacing: 0.2em;
}

.Butler_Light {
    font-family: "Butler_Light";
    letter-spacing: 0;
}

.Butler_Regular {
    font-family: "Butler_Regular";
    /* letter-spacing: 0; */
}

[data-aos="opacity-up"] {
    opacity: 1;
    clip-path: inset(100% 0 0% 0);
    /* 初始状态下完全隐藏 */
}

[data-aos="opacity-up"].aos-animate {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    /* 显示全部图片 */
}



body,
html {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    /* scroll-behavior: smooth; */
    --vw-base: calc(100vw / 1920);
    /* cursor: none; */
    /* 自訂游標暫時停用 */
}


body>* {}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin: 0;
    padding: 0;
    font-weight: normal;
}

a:link,
a:visited,
a:hover,
a:active {
    text-decoration: none;
}

button,
input,
textarea,
select,
option {
    margin: 0;
    padding: 0;
    -webkit-appearance: none;
    -webkit-border-radius: 0px;
    border-radius: 0;
    -moz-appearance: none;
    appearance: none;
    outline: none;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 隱藏瀏覽器原生的滾動條以防止 100vw 的寬度包含滾動條 (Hide native scrollbar to prevent 100vw from including scrollbar width) */
::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

html {
    scrollbar-width: none !important;
    /* Firefox */
    -ms-overflow-style: none !important;
    /* IE and Edge */
}


/* 自製滾動條軌道容器 (Custom Scrollbar Track Container) */
.custom-scrollbar {
    position: fixed;
    right: 4px;
    top: 4px;
    bottom: 4px;
    width: 4px;
    /* background-color: rgba(255, 255, 255, 0.02); */
    /* 微弱的半透明背景軌道 */
    border-radius: 4px;
    z-index: 999999;
    pointer-events: auto;
    opacity: 0;
    transition: opacity 0.3s ease, background-color 0.3s ease;
}

/* 當滑鼠懸停於軌道或是有 visible 類別時顯示滾動條 (Show scrollbar when hovered or has visible class) */
.custom-scrollbar.visible,
.custom-scrollbar:hover {
    opacity: 1;
    background-color: rgba(0, 0, 0, 0.08);
    /* 懸停時軌道背景變深一點 */
}

/* 自製滾動條滑塊 (Custom Scrollbar Thumb) */
.custom-scrollbar-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 20px;
    /* 高度由 JS 動態設定 */
    background-color: rgba(0, 0, 0, 0.3);
    /* 半透明白色色塊 */
    /* border-radius: 4px; */
    cursor: pointer;
    transition: background-color 0.2s ease;
}

/* 滑塊懸停或啟用狀態 (Thumb hover or active state) */
.custom-scrollbar-thumb:hover,
.custom-scrollbar-thumb.active {
    background-color: rgba(0, 0, 0, 0.5);
    /* 更亮一些 */
}

/* 拖曳時臨時停用平滑捲動以防止滑塊抖動滯後 (Temporarily disable smooth scroll during drag to prevent thumb lag) */
html.no-smooth {
    scroll-behavior: auto !important;
}

.pic-txt {
    position: absolute;
    bottom: calc(8* var(--vw-base));
    right: calc(8* var(--vw-base));
    color: #fff;
    font-size: calc(12* var(--vw-base));
    font-family: "Noto Sans TC";
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: calc(20* var(--vw-base));
    z-index: 10;
    text-shadow: #4e484698 1px 1px 1px;
}

/*內容*/
.container {
    position: relative;
    width: 100%;
    height: auto;
    /* opacity: 0; */
    background-color: #e6e6e6;
}


.m1 {
    position: relative;
    width: 100%;
    height: calc(1172*var(--vw-base));
    overflow: hidden;
    background-color: #e6e6e6;
    /* 白色背景開始 */
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: end;
    gap: calc(67*var(--vw-base));
}

.m1-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(950*var(--vw-base));
}

.bg-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    mix-blend-mode: luminosity;
    /* 或 screen */
    opacity: 0.08;
    /* 使用遮罩：700vw-base前完全顯示，700~900vw-base漸漸淡出，900~950vw-base完全遮蔽影片 (CSS mask-image gradient stops) */
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) calc(700*var(--vw-base)), rgba(0, 0, 0, 0) calc(900*var(--vw-base)), rgba(0, 0, 0, 0) calc(950*var(--vw-base)));
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) calc(700*var(--vw-base)), rgba(0, 0, 0, 0) calc(900*var(--vw-base)), rgba(0, 0, 0, 0) calc(950*var(--vw-base)));
}

.logo-row {
    position: absolute;
    left: 50%;
    top: calc(16*var(--vw-base));
    transform: translate(-50%, 0);
    width: calc(71*var(--vw-base));
    height: calc(41*var(--vw-base));
    opacity: 0;
    /* 預設隱藏避免進場動畫前閃現，由 GSAP 接手 (Hidden before entrance; GSAP takes over) */
}

.logo-row img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.open-1 .m1 .title {
    opacity: 0;
}

.open-2 .m1 .title,
.open-3 .m1 .title {
    opacity: 0;
}

/* 01 頁沒有 m1-navbar，開頁鈕一開始就固定顯示
   (No m1-navbar on this page: menu button is fixed & visible from the start,
    overriding the hidden default in menu.css) */
.menu-btn.is-fixed {
    opacity: 1;
    pointer-events: auto;
}

.m1 .title {
    position: relative;

}

.m1 .title h1 {
    position: relative;
    margin-top: calc(0*var(--vw-base));
    font-family: "Noto Serif TC", serif;
    font-weight: 500;
    color: #333333;
    font-size: calc(20*var(--vw-base));
    line-height: 1.4em;
    letter-spacing: 0.25em;
    text-align: center;
    margin-bottom: calc(20*var(--vw-base));
}

.m1 .title .date {
    position: relative;
    display: block;
    color: #333333;
    font-family: "Butler_Light";
    font-size: calc(18*var(--vw-base));
    line-height: 1.2em;
    letter-spacing: 0.1em;
    /* margin-top: calc(20*var(--vw-base)); */
    text-align: center;
    font-style: italic;
}

.m1-pic {
    position: relative;
    width: calc(1760*var(--vw-base));
    height: calc(760*var(--vw-base));
}

.open-1 .m1-pic {
    opacity: 0;
    transform: translateY(20px);
    clip-path: inset(0% 0% 50% 0%);
}

.open-2 .m1-pic,
.open-3 .m1-pic {
    opacity: 0;
    transform: translateY(20px);
    clip-path: inset(0% 0% 0% 0%);
}

.m2 {
    position: relative;
    width: 100%;
    min-height: calc(950*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: center;
}

.m2 .contain {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
    padding-top: calc(80*var(--vw-base));
    gap: calc(80*var(--vw-base));
}

.m2 .desc {
    position: relative;
    width: calc(605*var(--vw-base));
    height: auto;
    padding: calc(0*var(--vw-base)) 0;
    font-family: "Noto Serif TC", serif;
    font-weight: 500;
    color: #333333;
    font-size: calc(16*var(--vw-base));
    line-height: 1.8em;
    letter-spacing: 0.3em;
}

.m2 .pic-box-1 {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: end;
    align-items: end;
    gap: calc(78*var(--vw-base));
    box-sizing: border-box;
    padding-right: calc(78*var(--vw-base));

}

.m2 .pic-box-1 .pic-word {
    position: relative;
    font-family: "Noto Serif TC", serif;
    font-weight: 300;
    color: #333333;
    font-size: calc(16*var(--vw-base));
    line-height: 1.8em;
    letter-spacing: 0.3em;
    text-align: end;
}

.m2 .pic-box-1 .pic {
    position: relative;
    width: calc(1181*var(--vw-base));
    height: calc(620*var(--vw-base));
}

.open-1 .m2 .pic-box-1 .ani-clip-right {
    clip-path: inset(0% 100% 0% 0%);
}

.open-2 .m2 .pic-box-1 .ani-clip-right {
    clip-path: inset(0% 100% 0% 0%);
}

.open-2 .m2 .pic-box-1 .pic-word {
    opacity: 0;
}

.m2 .pic-box-2 {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.m2 .pic-box-2 .card-box {
    display: flex;
    justify-content: center;
    gap: calc(60*var(--vw-base));
}

.m2 .pic-box-2 .card {
    position: relative;
    width: calc(504*var(--vw-base));
    display: flex;
    flex-direction: column;
}

.m2 .pic-box-2 .card .pic {
    position: relative;
    width: 100%;
    height: calc(522*var(--vw-base));
}

.m2 .pic-box-2 .txt {
    position: relative;
    margin-top: calc(30*var(--vw-base));
    width: calc(504*var(--vw-base));
    font-family: "Noto Serif TC", serif;
    font-weight: 300;
    color: #333333;
    font-size: calc(16*var(--vw-base));
    line-height: 1.8em;
    letter-spacing: 0.3em;
    text-align: center;
}

.open-2 .m2 .pic-box-2 .card-box .pic,
.open-3 .m2 .pic-box-2 .card-box .pic {
    clip-path: inset(0% 0% 100% 0%);
}

.open-2 .m2 .pic-box-2 .txt,
.open-3 .m2 .pic-box-2 .txt {
    opacity: 0;
    transform: translateY(20px);
}

.m1-pic-txt {
    position: absolute;
    left: calc(84*var(--vw-base));
    top: calc(80*var(--vw-base));
    width: calc(320*var(--vw-base));
    font-family: "Noto Serif TC", serif;
    font-weight: 500;
    color: #333333;
    font-size: calc(16*var(--vw-base));
    line-height: 1.8em;
    letter-spacing: 0.3em;
}

.back-btn {
    position: relative;
    display: inline-block;
    margin: calc(120*var(--vw-base)) auto 0 auto;
    color: #333333;
    padding-bottom: calc(3*var(--vw-base));
    font-family: "Butler_Regular";
    font-size: calc(18*var(--vw-base));
    line-height: 1.4em;
    letter-spacing: 0em;
    text-align: center;
    font-style: italic;
    cursor: pointer;
}

.back-btn .arr {
    position: absolute;
    left: 0;
    bottom: 0;
    width: calc(123*var(--vw-base));
    height: calc(3*var(--vw-base));
}