@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(950*var(--vw-base));
    background-color: #e6e6e6;
    /* 白色背景開始 */
    z-index: 10;
}

/* 從案件內頁返回時，先定位 m5 案件區，再一次顯示卡片。 */
html.is-m5-return .m1,
html.is-m5-return .m3-swiper {
    visibility: hidden;
}

html.is-m5-return .m3 .mount-line {
    visibility: hidden !important;
}

.m1-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.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;
}

.m1-pic {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    /* 圖片本體固定滿版 (1920x721)，不再縮放 (Full-bleed box, no resizing) */
    width: 100%;
    height: calc(721*var(--vw-base));
    z-index: 5;
    overflow: hidden;
    /* 初始 clip 成 1760x609、top 112 的內縮框，滾動時由 GSAP 還原至滿版
       (Initially clipped to the inset frame; GSAP reveals to full bleed on scroll) */
    clip-path: inset(calc(112*var(--vw-base)) calc(80*var(--vw-base)) 0 calc(80*var(--vw-base)));
    -webkit-clip-path: inset(calc(112*var(--vw-base)) calc(80*var(--vw-base)) 0 calc(80*var(--vw-base)));
    opacity: 0;
    /* 預設隱藏避免進場動畫前閃現，由 GSAP 接手 (Hidden before entrance; GSAP takes over) */
}

.m1-scroll {
    position: absolute;
    top: calc(750*var(--vw-base));
    /* 位於下方 230vw-base 剩餘空間的居中偏下 */
    left: 50%;
    transform: translate(-50%, 0);
    text-align: center;
    z-index: 3;
    opacity: 0;
    /* 預設隱藏，由 GSAP 控制淡入與上浮 */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(10*var(--vw-base));
    z-index: 3;
}

.m1-scroll-txt {
    position: relative;
    color: #333333;
    font-family: "Noto Serif TC";
    font-size: calc(16*var(--vw-base));
    line-height: 1.4em;
    font-weight: 500;
    letter-spacing: 0.3em;
}

/* 外層容器：確保箭頭位置固定 */
.m1-scroll-wrapper {
    position: relative;
    width: calc(4 * var(--vw-base));
    height: calc(137 * var(--vw-base));
}

/* 1. 底層靜態箭頭 */
.arr1 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

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

/* 2. 動態光束層 */
.arr2 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    /* 初始：隱藏光束 */
    clip-path: inset(0% 0% 100% 0%);
}

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

/* 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;
}


.m2 {
    position: relative;
    width: 100%;
    /* min-height: calc(586*var(--vw-base)); */
    background-color: #e6e6e6;
    /* 白色背景開始 */
    padding-bottom: calc(222*var(--vw-base));
}

.m2-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: calc(70*var(--vw-base));
}

.m2-content .en {
    position: relative;
    font-style: italic;
    color: #333333;
    font-family: "Butler_Light";
    font-size: calc(18*var(--vw-base));
    line-height: 1.2em;
    font-weight: 300;
    letter-spacing: 0em;
    text-align: center;
}

.m2-content .cn {
    position: relative;
    color: #333333;
    font-family: "Noto Serif TC";
    font-size: calc(16*var(--vw-base));
    line-height: 1.8em;
    font-weight: 300;
    letter-spacing: 0.3em;
    text-align: center;
}

.m3 {
    position: relative;
    width: 100%;
    overflow: hidden;
    min-height: calc(730*var(--vw-base));
}

.m3-swiper {
    position: relative;
    left: calc(50*var(--vw-base));
    /*1張全圖寬676+左右間距各55=786 預計呈現4個> 786*4=3144 */
    width: calc(3144*var(--vw-base));
    height: calc(730*var(--vw-base));
    overflow: visible;
}

.m3-swiper.noinit {
    width: 100%;
}

/* noinit 時仍維持和 4 欄 Swiper 相同的單張節距。 */
.m3-swiper.noinit .swiper-wrapper {
    display: flex;
    width: max-content;
}

.m3-swiper.noinit .swiper-slide {
    flex: 0 0 calc(786*var(--vw-base));
    width: calc(786*var(--vw-base));
}

.m3-swiper .swiper-wrapper {
    height: 100%;
}

.m3-swiper .swiper-slide {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.m3-swiper .swiper-slide .pic {
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(676*var(--vw-base));
    height: calc(730*var(--vw-base));
    transform: translate(-50%, -50%);
    overflow: hidden;
}

.m3-swiper .swiper-slide .pic img,
.m3-swiper .swiper-slide .pic video {
    position: relative;
    z-index: 0;
    transition: transform 0.8s ease;
}

.m3-swiper .swiper-slide .pic video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m3-swiper .swiper-slide .pic::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: rgba(51, 51, 51, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
}

.m3-swiper .swiper-slide:hover .pic img,
.m3-swiper .swiper-slide:hover .pic video {
    transform: scale(1.05);
}

.m3-swiper .swiper-slide:hover .pic::after {
    opacity: 1;
}

.m3-swiper .swiper-slide.is-even-slide .pic {
    transform: translate(-50%, -50%) scale(0.84);
}

.m3-swiper .swiper-slide .info {
    position: relative;
    width: calc(426*var(--vw-base));
    height: calc(486*var(--vw-base));
    display: flex;
    flex-direction: column;
    justify-content: end;
    box-sizing: border-box;
    padding: 0 calc(26*var(--vw-base)) calc(22*var(--vw-base)) calc(26*var(--vw-base));
    background-color: rgba(229, 229, 229, 0.8);
}

.m3-swiper .info .date {
    position: absolute;
    top: calc(28*var(--vw-base));
    left: calc(26*var(--vw-base));
    color: #333333;
    font-family: "Butler_Light";
    font-size: calc(18*var(--vw-base));
    line-height: 1.2em;
    letter-spacing: 0.1em;

}

.m3-swiper .info .name,
.m3-swiper .info .title {
    position: relative;
    color: #333333;
    font-family: "Noto Serif TC";
    font-weight: 500;
    font-size: calc(20*var(--vw-base));
    line-height: 1.2em;
    letter-spacing: 0.3em;
}

.m3-swiper .info .arr {
    position: relative;
    margin-top: calc(12*var(--vw-base));
    width: calc(58*var(--vw-base));
    height: calc(3*var(--vw-base));
}

.m3-swiper .info .desc {
    position: relative;
    margin-top: calc(12*var(--vw-base));
    min-height: calc(80*var(--vw-base));
    color: #333333;
    font-family: "Noto Serif TC";
    font-weight: 300;
    font-size: calc(16*var(--vw-base));
    line-height: 1.8em;
    letter-spacing: 0.2em;
    text-align: justify;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.m3 .mount-line {
    position: absolute;
    left: 0;
    top: calc(266*var(--vw-base));
    width: 100%;
    height: calc(277*var(--vw-base));
    opacity: 0;
    /* 初始完全隱藏 (Initially hidden) */
}

.m3 .mount-line .line {
    position: absolute;
    left: 0;
    top: calc(0*var(--vw-base));
    width: 100%;
    height: 100%;
}
