/* 首頁《三鴿幻影》：全螢幕暗場聚焦舞台 */
.home-awards-curtain { position: relative; z-index: 3; isolation: isolate; }

.three-doves-scene {
  --three-doves-viewport: 100svh; --three-doves-copy-top: 8rem;
  --three-doves-hero-opacity: 1; --three-doves-dove-opacity: 0; --three-doves-illusion-opacity: 0; --three-doves-three-opacity: 0;
  --three-doves-hero-brightness: .4; --three-doves-dove-brightness: .62; --three-doves-illusion-brightness: .62; --three-doves-three-brightness: .62;
  --three-doves-hero-saturation: 1; --three-doves-dove-saturation: .86; --three-doves-illusion-saturation: .86; --three-doves-three-saturation: .86;
  --three-doves-hero-blur: 0px; --three-doves-dove-blur: 2px; --three-doves-illusion-blur: 2px; --three-doves-three-blur: 2px;
  --three-doves-hero-scale: 1; --three-doves-dove-scale: 1.01; --three-doves-illusion-scale: 1.01; --three-doves-three-scale: 1.01;
  --three-doves-dove-x: 0%; --three-doves-illusion-x: 0%; --three-doves-three-x: 0%;
  --three-doves-title-opacity: 0; --three-doves-english-opacity: 0; --three-doves-award-opacity: 0; --three-doves-description-opacity: 0;
  --three-doves-title-y: 8px; --three-doves-english-y: 8px; --three-doves-award-y: 8px; --three-doves-description-y: 8px;
  --three-doves-title-blur: 6px; --three-doves-english-blur: 6px; --three-doves-award-blur: 6px; --three-doves-description-blur: 6px; --three-doves-hero-shade-opacity: 0;
  --three-doves-dove-subtitle-opacity: 0; --three-doves-illusion-subtitle-opacity: 0; --three-doves-three-subtitle-opacity: 0;
  --three-doves-dove-subtitle-y: 14px; --three-doves-illusion-subtitle-y: 14px; --three-doves-three-subtitle-y: 14px;
  --three-doves-dove-subtitle-blur: 6px; --three-doves-illusion-subtitle-blur: 6px; --three-doves-three-subtitle-blur: 6px;
  --three-doves-dove-subtitle-spacing: .16em; --three-doves-illusion-subtitle-spacing: .16em; --three-doves-three-subtitle-spacing: .16em;
  --three-doves-finale-opacity: 0; --three-doves-finale-eyebrow-opacity: 0; --three-doves-finale-title-opacity: 0; --three-doves-finale-english-opacity: 0; --three-doves-finale-award-opacity: 0; --three-doves-finale-description-opacity: 0;
  --three-doves-finale-eyebrow-y: 8px; --three-doves-finale-title-y: 8px; --three-doves-finale-english-y: 8px; --three-doves-finale-award-y: 8px; --three-doves-finale-description-y: 8px;
  --three-doves-finale-eyebrow-blur: 6px; --three-doves-finale-title-blur: 6px; --three-doves-finale-english-blur: 6px; --three-doves-finale-award-blur: 6px; --three-doves-finale-description-blur: 6px;
  --three-doves-finale-y: 8px; --three-doves-finale-shade-opacity: 0; --three-doves-wreath-shift: 18px; --three-doves-blackout: 0;
  position: relative; z-index: 1; min-height: var(--three-doves-viewport); overflow: visible; background: #02040b; color: #fff;
}
@supports (height: 100dvh) { .three-doves-scene { --three-doves-viewport: 100dvh; } }
.three-doves-scene.is-enhanced { height: calc(var(--three-doves-viewport) + 500vh); margin-top: calc(-1 * var(--three-doves-viewport)); }
.three-doves-hero-start { position: absolute; top: var(--three-doves-viewport); left: 0; width: 1px; height: 1px; pointer-events: none; }
.three-doves-stage { position: relative; width: 100%; height: var(--three-doves-viewport); min-height: var(--three-doves-viewport); overflow: hidden; background: #02040b; }
.three-doves-scene.is-enhanced .three-doves-stage { position: sticky; top: 0; }
.three-doves-stage::after { content: ''; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: #030817; opacity: var(--three-doves-blackout); will-change: opacity; }
.three-doves-visuals, .three-doves-frame, .three-doves-frame picture { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.three-doves-frame { margin: 0; opacity: 0; pointer-events: none; will-change: opacity; }
.three-doves-frame img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transform-origin: center; backface-visibility: hidden; will-change: transform, filter; }
.three-doves-frame--hero { opacity: var(--three-doves-hero-opacity); }
.three-doves-frame--hero img { object-position: 17% center; filter: brightness(var(--three-doves-hero-brightness)) saturate(var(--three-doves-hero-saturation)) blur(var(--three-doves-hero-blur)); transform: scale(var(--three-doves-hero-scale)); }
.three-doves-frame--dove { opacity: var(--three-doves-dove-opacity); }
.three-doves-frame--dove img { object-position: 58% center; filter: brightness(var(--three-doves-dove-brightness)) saturate(var(--three-doves-dove-saturation)) blur(var(--three-doves-dove-blur)); transform: translate3d(var(--three-doves-dove-x),0,0) scale(var(--three-doves-dove-scale)); }
.three-doves-frame--illusion { opacity: var(--three-doves-illusion-opacity); }
.three-doves-frame--illusion img { object-position: 58% center; filter: brightness(var(--three-doves-illusion-brightness)) saturate(var(--three-doves-illusion-saturation)) blur(var(--three-doves-illusion-blur)); transform: translate3d(var(--three-doves-illusion-x),0,0) scale(var(--three-doves-illusion-scale)); }
.three-doves-frame--three { opacity: var(--three-doves-three-opacity); }
.three-doves-frame--three img { object-position: 65% center; filter: brightness(var(--three-doves-three-brightness)) saturate(var(--three-doves-three-saturation)) blur(var(--three-doves-three-blur)); transform: translate3d(var(--three-doves-three-x),0,0) scale(var(--three-doves-three-scale)); }
.three-doves-vignette { position: absolute; z-index: 2; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(0,0,0,.18),transparent 26%,transparent 72%,rgba(0,0,0,.38)); }
.three-doves-content-container { position: absolute; z-index: 3; inset: 0; height: 100%; pointer-events: none; }
.three-doves-hero-copy, .three-doves-finale-content { position: absolute; top: var(--three-doves-copy-top); left: 15px; width: min(34rem,42vw); text-align: left; isolation: isolate; }
.three-doves-hero-copy { pointer-events: none; }
.three-doves-hero-copy > * { pointer-events: auto; }
.three-doves-finale-content { pointer-events: none; }
.three-doves-hero-copy::before, .three-doves-finale-content::before { content: ''; position: absolute; z-index: -1; top: calc(-1 * var(--three-doves-copy-top)); bottom: auto; left: -3rem; width: calc(100% + 4rem); height: var(--three-doves-viewport); pointer-events: none; background: linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.76) 50%,rgba(0,0,0,.42) 78%,rgba(0,0,0,.26) 92%,transparent 100%); }
.three-doves-hero-copy::before { opacity: var(--three-doves-hero-shade-opacity); }
.three-doves-finale-content::before { opacity: var(--three-doves-finale-shade-opacity); }
.three-doves-eyebrow { margin: 0; color: var(--color-1); font-size: .75rem; font-weight: 700; line-height: 1.5; letter-spacing: .4em; }
.three-doves-hero-copy > .three-doves-eyebrow { opacity: var(--three-doves-title-opacity); filter: blur(var(--three-doves-title-blur)); transform: translate3d(0,var(--three-doves-title-y),0); }
.three-doves-hero-copy h2, .three-doves-finale-title { margin: 4rem 0 0; color: #fff; font-family: 'Noto Serif TC',serif; font-size: 3.25rem; font-weight: 500; letter-spacing: .05em; line-height: 1.4; }
.three-doves-hero-copy h2 { opacity: var(--three-doves-title-opacity); filter: blur(var(--three-doves-title-blur)); transform: translate3d(0,var(--three-doves-title-y),0); }
.three-doves-english-title { margin: .75rem 0 0; color: rgba(255,255,255,.82); font-size: .9rem; font-weight: 300; letter-spacing: .36em; }
.three-doves-hero-copy > .three-doves-english-title { opacity: var(--three-doves-english-opacity); filter: blur(var(--three-doves-english-blur)); transform: translate3d(0,var(--three-doves-english-y),0); }
.three-doves-award { display: inline-flex; align-items: center; gap: 0; margin-top: 1.35rem; color: var(--color-1); font-size: clamp(1.1rem,1.65vw,1.5rem); font-weight: 700; letter-spacing: .18em; line-height: 1; white-space: nowrap; }
.three-doves-hero-copy > .three-doves-award { opacity: var(--three-doves-award-opacity); filter: blur(var(--three-doves-award-blur)); transform: translate3d(0,var(--three-doves-award-y),0); }
.three-doves-wreath { display: inline-block; flex: 0 0 auto; width: clamp(3.5rem,5.2vw,5rem); aspect-ratio: 1; margin-inline: -.2rem; background-repeat: no-repeat; background-position: center; background-size: contain; will-change: transform; }
.three-doves-wreath--left { background-image: url('../img/three-doves-wreath-left.svg'); transform: translate3d(var(--three-doves-wreath-shift),0,0); }
.three-doves-wreath--right { background-image: url('../img/three-doves-wreath-right.svg'); transform: translate3d(calc(-1 * var(--three-doves-wreath-shift)),0,0); }
@supports ((-webkit-mask-image: url('')) or (mask-image: url(''))) { .three-doves-wreath { background-color: var(--color-1); background-image: none; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; } .three-doves-wreath--left { -webkit-mask-image: url('../img/three-doves-wreath-left.svg'); mask-image: url('../img/three-doves-wreath-left.svg'); } .three-doves-wreath--right { -webkit-mask-image: url('../img/three-doves-wreath-right.svg'); mask-image: url('../img/three-doves-wreath-right.svg'); } }
.three-doves-description { max-width: 26rem; margin: 1rem 0 0; color: #fff; font-size: 1rem; font-weight: 300; letter-spacing: .1em; line-height: 1.7; }
.three-doves-hero-copy > .three-doves-description { opacity: var(--three-doves-description-opacity); filter: blur(var(--three-doves-description-blur)); transform: translate3d(0,var(--three-doves-description-y),0); }
.three-doves-subtitles { position: absolute; inset: 0; }
.three-doves-subtitle { position: absolute; z-index: 1; top: 50%; left: 15px; width: min(34rem,42vw); margin: 0; color: #fff; font-family: 'Noto Serif TC',serif; font-size: 3.25rem; font-weight: 500; line-height: 1.4; text-shadow: 0 0 28px rgba(0,0,0,.56); will-change: opacity,transform,filter; }
.three-doves-subtitle span { display: block; font-family: inherit; font-weight: inherit; }
.three-doves-subtitle--dove { opacity: var(--three-doves-dove-subtitle-opacity); letter-spacing: var(--three-doves-dove-subtitle-spacing); filter: blur(var(--three-doves-dove-subtitle-blur)); transform: translate3d(0,calc(-50% + var(--three-doves-dove-subtitle-y)),0); }
.three-doves-subtitle--illusion { opacity: var(--three-doves-illusion-subtitle-opacity); letter-spacing: var(--three-doves-illusion-subtitle-spacing); filter: blur(var(--three-doves-illusion-subtitle-blur)); transform: translate3d(0,calc(-50% + var(--three-doves-illusion-subtitle-y)),0); }
.three-doves-subtitle--three { opacity: var(--three-doves-three-subtitle-opacity); letter-spacing: var(--three-doves-three-subtitle-spacing); filter: blur(var(--three-doves-three-subtitle-blur)); transform: translate3d(0,calc(-50% + var(--three-doves-three-subtitle-y)),0); }
.three-doves-finale-copy > .three-doves-eyebrow { opacity: var(--three-doves-finale-eyebrow-opacity); filter: blur(var(--three-doves-finale-eyebrow-blur)); transform: translate3d(0,var(--three-doves-finale-eyebrow-y),0); }
.three-doves-finale-title { opacity: var(--three-doves-finale-title-opacity); filter: blur(var(--three-doves-finale-title-blur)); transform: translate3d(0,var(--three-doves-finale-title-y),0); }
.three-doves-finale-copy > .three-doves-english-title { opacity: var(--three-doves-finale-english-opacity); filter: blur(var(--three-doves-finale-english-blur)); transform: translate3d(0,var(--three-doves-finale-english-y),0); }
.three-doves-finale-copy > .three-doves-award { display: flex; width: min(100%,20rem); justify-content: flex-start; opacity: var(--three-doves-finale-award-opacity); filter: blur(var(--three-doves-finale-award-blur)); transform: translate3d(0,var(--three-doves-finale-award-y),0); }
.three-doves-finale-copy > .three-doves-description { opacity: var(--three-doves-finale-description-opacity); filter: blur(var(--three-doves-finale-description-blur)); transform: translate3d(0,var(--three-doves-finale-description-y),0); }
.three-doves-finale { display: flex; width: min(100%,20rem); justify-content: flex-start; margin-top: 2rem; opacity: var(--three-doves-finale-opacity); transform: translate3d(0,var(--three-doves-finale-y),0); pointer-events: none; will-change: opacity,transform; }
.three-doves-finale .button { pointer-events: auto; text-align: left; }
.three-doves-finale .button[aria-hidden='true'] { pointer-events: none; }
.three-doves-finale .button span { padding-left: 0; text-align: left; }
.three-doves-finale .button:focus-visible { outline: 1px solid var(--color-1); outline-offset: .4rem; }
@media (min-width: 992px) { .three-doves-wreath { margin-inline: -.55rem; } }
@media (min-width: 1200px) { .three-doves-wreath { margin-inline: -1rem; } }
@media (min-width:576px) { .three-doves-finale { margin-top: 3rem; } }
@media (min-width:576px) and (max-width:1199.98px) { .three-doves-scene.is-enhanced { height: calc(var(--three-doves-viewport) + 470vh); } .three-doves-hero-copy, .three-doves-finale-content, .three-doves-subtitle { width: min(31rem,47vw); } }
@media (min-width:576px) and (max-width:1199.98px) and (orientation:portrait) { .three-doves-subtitle { top: 48%; width: calc(100vw - 2rem); white-space: nowrap; } }
@media (min-width:768px) and (max-width:991.98px) and (orientation:portrait) { .three-doves-hero-copy::before, .three-doves-finale-content::before { left: calc(360px - 50vw - 15px); width: calc(100% + 50vw - 329px); } }
@media (min-width:1200px) { .three-doves-subtitle { top: 48%; } }
@media (min-width:992px) and (max-width:1199.98px) { .three-doves-hero-copy::before, .three-doves-finale-content::before { left: calc(465px - 50vw); width: calc(100% + 50vw - 401px); } }
@media (min-width:1200px) { .three-doves-hero-copy::before, .three-doves-finale-content::before { left: calc(555px - 50vw); width: calc(100% + 50vw - 491px); } }
@media (orientation:portrait) and (max-width:1199.98px) { .three-doves-frame--hero img { object-position: center; } .three-doves-frame--dove img { object-position: 54% center; } .three-doves-frame--illusion img { object-position: 56% center; } .three-doves-frame--three img { object-position: 70% center; } }
@media (max-width:575.98px) {
  .three-doves-scene { --three-doves-copy-top: 8rem; --three-doves-mobile-gutter: calc(1rem + 15px); }
  .three-doves-scene.is-enhanced { height: calc(var(--three-doves-viewport) + 440vh); }
  .three-doves-vignette { background: linear-gradient(180deg,rgba(0,2,9,.48),rgba(0,2,9,.08) 34%,transparent 62%,rgba(0,0,0,.34)); }
  .three-doves-content-container { padding: 0; }
  .three-doves-hero-copy, .three-doves-finale-content { left: var(--three-doves-mobile-gutter); width: min(calc(100% - (2 * var(--three-doves-mobile-gutter))),29rem); }
  .three-doves-finale-content { top: var(--three-doves-copy-top); }
  .three-doves-hero-copy::before, .three-doves-finale-content::before {
    top: calc(-1 * var(--three-doves-copy-top));
    bottom: auto;
    left: calc(-1 * var(--three-doves-mobile-gutter));
    width: 100vw;
    height: var(--three-doves-viewport);
    background: linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.76) 52%,rgba(0,0,0,.45) 78%,rgba(0,0,0,.12) 94%,transparent 100%);
    -webkit-mask-image: linear-gradient(180deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
    mask-image: linear-gradient(180deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
  }
  .three-doves-finale-content::before { top: calc(-1 * var(--three-doves-copy-top)); }
  .three-doves-hero-copy h2 { margin-top: 2.75rem; }
  .three-doves-finale-title { margin-top: 2.75rem; }
  .three-doves-hero-copy h2, .three-doves-finale-title { font-size: 2.5rem; line-height: 1.35; }
  .three-doves-english-title { margin-top: .5rem; font-size: .65rem; letter-spacing: .23em; }
  .three-doves-award { margin-top: .8rem; font-size: clamp(.95rem,4vw,1.08rem); letter-spacing: .1em; }
  .three-doves-wreath { width: clamp(3rem,14vw,3.75rem); margin-inline: -.72rem; }
  .three-doves-description { max-width: 22rem; margin-top: .75rem; font-size: 1rem; line-height: 1.65; }
  .three-doves-subtitle { top: 45%; left: 50%; width: min(calc(100vw - 3rem),26rem); font-size: 2.5rem; line-height: 1.4; text-align: center; }
  .three-doves-subtitle--dove { transform: translate3d(-50%,calc(-50% + var(--three-doves-dove-subtitle-y)),0); }
  .three-doves-subtitle--illusion { transform: translate3d(-50%,calc(-50% + var(--three-doves-illusion-subtitle-y)),0); }
  .three-doves-subtitle--three { transform: translate3d(-50%,calc(-50% + var(--three-doves-three-subtitle-y)),0); }
  .three-doves-frame--dove img { object-position: 54% center; }
  .three-doves-frame--illusion img { object-position: 56% center; }
  .three-doves-frame--three img { position: absolute; left: -20%; width: 160%; height: 100%; object-fit: cover; object-position: center; }
  .three-doves-finale-copy > .three-doves-award,
  .three-doves-finale { width: auto; justify-content: flex-start; }
  .three-doves-finale { margin-top: 1.75rem; }
  .three-doves-finale .button { display: inline-flex; flex-direction: column; align-items: flex-start; text-align: left; }
  .three-doves-finale .button img { width: 4.5rem; height: auto; }
  .three-doves-finale .button span { margin-top: .75rem; padding-left: 0; text-align: left; }
}
@media (orientation:landscape) and (max-height:500px) { .three-doves-scene { --three-doves-copy-top: 1.4rem; } .three-doves-hero-copy, .three-doves-finale-content { width: min(36rem,58vw); } .three-doves-hero-copy h2, .three-doves-finale-title { margin-top: 1.2rem; font-size: clamp(1.65rem,5vw,2.5rem); } .three-doves-english-title, .three-doves-award, .three-doves-description { margin-top: .4rem; } .three-doves-description { font-size: .8rem; line-height: 1.5; } .three-doves-finale { margin-top: .6rem; transform-origin: left top; } .three-doves-subtitle { left: 0; width: min(34rem,55vw); font-size: clamp(1.35rem,4vw,2rem); text-align: left; } }
@media (prefers-reduced-motion:reduce) { .three-doves-frame img, .three-doves-wreath { transform: none !important; } .three-doves-frame, .three-doves-hero-copy > *, .three-doves-finale-copy > *, .three-doves-subtitle, .three-doves-finale { filter: none !important; will-change: auto; } }
