:root {
  --wine: #5e0000;
  --ink: #171311;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  color: var(--ink);
  font-family: "Noto Serif TC", serif;
}
img {
  display: block;
  max-width: 100%;
}
button {
  font: inherit;
  cursor: pointer;
}
button:focus-visible,
a:focus-visible {
  outline: 3px solid #d8a355;
  outline-offset: 3px;
}
.hero {
  position: relative;
  overflow: hidden;
  height: max(100svh, min(56.25vw, 1080px));
  min-height: 600px;
  color: white;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background: #720000 url("../images/hero-desktop.svg") center / cover no-repeat;
}
.hero-content {
  height: 100%;
  position: relative;
  max-width: 1920px;
  margin: auto;
}
.hero-content > :not(h1) {
  position: absolute;
}
.hero-content picture,
.hero-content picture img {
  display: block;
  width: 100%;
}
.hero-number {
  left: 4.74%;
  bottom: 8.43%;
  width: 47.81%;
}
.hero-open {
  right: 4.94%;
  bottom: 8.43%;
  width: 39.32%;
}
.hero-tagline {
  right: 4.94%;
  top: 65.56%;
  margin: 0;
  font-size: clamp(16px, 2.455vw, 47.15px);
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: right;
  white-space: nowrap;
}
.hero-brand {
  right: 4.95%;
  top: 6.76%;
  width: 37.97%;
}
.hero-credit {
  right: 2.38%;
  bottom: 3.88%;
  width: 6.61%;
}
.life {
  background: #f5f4f2 url("../images/a730f.webp") center / cover no-repeat;
}
.materials {
  background: #f5f4f2 url("../images/5ae82.webp") center / cover no-repeat;
}
.life-inner,
.materials-inner {
  max-width: 1920px;
  margin: auto;
  padding: 6.6% 6.25%;
}
.section-heading > span {
  display: block;
  font:
    700 clamp(20px, 1.5625vw, 30px) / 1.5 "Abhaya Libre",
    Georgia,
    serif;
}
.section-heading h2 {
  font-size: clamp(25px, 2.604vw, 50px);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin: 0.4em 0 0;
}
.section-heading p {
  font-size: clamp(15px, 1.04vw, 20px);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin: 2.1em 0 1.2em;
}
.life-grid {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 0.75vw;
  margin-top: 7%;
  align-items: start;
}
.mall {
  grid-column: 1/3;
  grid-row: 1;
}
.stat-six {
  grid-column: 3/4;
  grid-row: 1;
  margin-left: clamp(6px, 1.05vw, 20px);
}
.static-a {
  grid-column: 2/4;
  grid-row: 2;
}
.static-b {
  grid-column: 5/7;
  grid-row: 1;
}
.static-c {
  grid-column: 7/9;
  grid-row: 1;
}
.static-c figure {
  margin: 0;
  position: relative;
}
.static-d {
  grid-column: 9/11;
  grid-row: 1;
}
.stat-seven {
  grid-column: 4/5;
  grid-row: 2;
  align-self: end;
  margin-left: clamp(6px, 1.05vw, 20px);
}
.stat-eight {
  grid-column: 6/7;
  grid-row: 2;
  align-self: end;
  justify-self: end;
  margin-right: clamp(6px, 1.05vw, 20px);
}
.park {
  grid-column: 9/11;
  grid-row: 2;
}
.life-grid > div > img,
.life-grid > div > figure > img {
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
}
.static-c figure > img,
.lifestyle-mobile .slide-station img {
  object-position: 100% 50%;
}
.lifestyle-mobile {
  display: none;
}
.stat {
  margin: 0;
  line-height: 1.1;
  transform-origin: center;
}
.stat b {
  display: block;
  font:
    400 clamp(50px, 8.33vw, 160px) / 0.78 "Abhaya Libre",
    Georgia,
    serif;
}
.stat-text {
  display: block;
  font-size: clamp(11px, 1.25vw, 24px);
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin-top: 0.55em;
  white-space: nowrap;
}
.stat-line1 {
  display: block;
}
.stat-slash-svg {
  display: inline-block;
  width: 1.71em;
  height: 1px;
  margin-left: -0.15em;
  margin-right: 0.1em;
  vertical-align: 0.35em;
  transform: rotate(45deg);
  transform-origin: center;
}
.stat-slash-char {
  display: none;
}
.stat-line2 {
  display: inline;
}
.carousel {
  position: relative;
  min-width: 0;
}
.carousel .swiper {
  width: 100%;
}
.carousel figure {
  margin: 0;
  position: relative;
  overflow: hidden;
}
.carousel figure img {
  aspect-ratio: 1;
  width: 100%;
  object-fit: cover;
  object-position: var(--carousel-position, center);
}
/* 小輪播依 Figma 的焦點等比例放大，裁切範圍由 figure 決定。 */
.life .carousel figure img {
  scale: var(--carousel-scale, none);
  transform-origin: var(--carousel-position, center);
}
.carousel figcaption,
.brand-pictures figcaption,
.static-c figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.25);
  color: white;
  padding: 4px;
  font:
    300 12px / 1.5 "Noto Sans TC",
    "Inter",
    sans-serif;
  letter-spacing: 0.1em;
}
.carousel figcaption.caption-left,
.static-c figcaption.caption-left {
  left: 0;
  right: auto;
}
.carousel-prev,
.carousel-next {
  position: absolute;
  z-index: 2;
  border: 0;
  padding: 5px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
  color: white;
  background: rgba(0, 0, 0, 0.5);
  display: grid;
  place-items: center;
}
.carousel-prev img,
.carousel-next img {
  width: 24px;
  height: 24px;
}
.carousel-prev {
  left: 10px;
}
.carousel-next {
  right: 10px;
}
.night {
  position: relative;
  overflow: hidden;
  background: #111;
  color: #fff;
  box-shadow: inset 0 4px 250px rgba(0, 0, 0, 0.25);
}
.night-scene {
  position: relative;
}
.night-bg > img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.section-vignette {
  position: absolute;
  left: -8.65%;
  top: -15.37%;
  width: 57.19%;
  pointer-events: none;
  z-index: 1;
}
.section-vignette img {
  width: 100%;
  height: auto;
}
.night > p,
.facilities > p {
  position: absolute;
  z-index: 2;
  left: 6.25%;
  top: 11.11%;
  margin: 0;
  font-size: clamp(15px, 1.5625vw, 30px);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.65);
}
.night-logo {
  position: absolute;
  z-index: 2;
  right: 6.25%;
  bottom: 8.69%;
  width: 9.74%;
}
.night-light {
  position: absolute;
  inset: 20%;
  pointer-events: none;
  background: radial-gradient(circle, #edbc5960, transparent 35%);
  mix-blend-mode: screen;
  opacity: 0.3;
}
.night-light-1 {
  transform: translate(-25%, 10%);
}
.night-light-2 {
  transform: translate(25%, 0);
}
.night-light-3 {
  transform: translate(0, 20%);
}
.materials-inner {
  position: relative;
}
.brand-tabs {
  position: absolute;
  right: 6.25%;
  top: calc(6.6vw + clamp(28px, 2.7vw, 52px));
  width: 55.78%;
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin: 0;
  z-index: 3;
}
.brand-tabs button {
  flex: 1;
  min-width: 0;
  min-height: clamp(44px, 3.75vw, 72px);
  padding: 0.8em 0.4em;
  background: transparent;
  color: #000;
  border: 1px solid #000;
  line-height: 1.1;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.3em;
  white-space: nowrap;
  transition:
    background-color 0.25s ease,
    color 0.25s ease;
}
.brand-tabs button[aria-selected="true"] {
  background: #000;
  color: #fff;
}
.brand-tabs strong,
.brand-tabs small {
  display: inline;
  font-size: clamp(10px, 0.98vw, 20px);
  letter-spacing: 0.04em;
}
.brand-tabs strong {
  font-family: "Inter", "Noto Sans TC", sans-serif;
  font-weight: 700;
}
.brand-tabs small {
  font-family: "Noto Sans TC", sans-serif;
  font-weight: 700;
}
.brand-panel[hidden] {
  display: none;
}
.brand-pictures {
  display: flex;
  gap: 7px;
}
.brand-pictures figure {
  position: relative;
  margin: 0;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.brand-pictures picture {
  display: block;
  width: 100%;
  height: 100%;
}
.brand-pictures img {
  width: 100%;
  height: clamp(280px, 26.51vw, 509px);
  object-fit: cover;
}
.panasonic-pictures .panasonic-fig-1 {
  flex: 0 0 61.43%;
}
.panasonic-pictures .panasonic-fig-1 img {
  object-position: 50% 70%;
}
.panasonic-pictures .panasonic-fig-2 img {
  object-position: 50% 62%;
}
.ausmute-pictures .ausmute-fig img {
  object-position: 50% 60%;
}
.taya-pictures .taya-fig-1 img.img-flip {
  transform: scaleX(-1);
  object-position: 50% 58%;
}
.taya-mobile-only {
  display: none;
}
.brand-caption {
  position: relative;
  margin-top: 0;
  min-height: clamp(64px, 6.67vw, 128px);
}
.panasonic-caption {
  position: relative;
  display: grid;
  grid-template-columns: 1fr minmax(180px, 25.89%);
  align-items: end;
  gap: 1rem;
  padding-left: 22.98%;
  padding-top: clamp(16px, 1.25vw, 24px);
  padding-bottom: clamp(28px, 3.38vw, 65px);
}
.panasonic-caption p {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: clamp(10px, 0.9375vw, 18px);
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: #0d0d0d;
}
.panasonic-badge {
  position: absolute;
  width: 15.18%;
  left: 3.69%;
  bottom: 0;
  z-index: 2;
  pointer-events: none;
}
.panasonic-wordmark {
  width: 100%;
}
.ausmute-badge {
  position: absolute;
  left: 3.69%;
  bottom: 0;
  width: 15.18%;
  aspect-ratio: 1;
  z-index: 2;
  pointer-events: none;
}
.ausmute-part {
  position: absolute;
  display: block;
  max-width: none;
}
.ausmute-part-bl {
  left: 0;
  bottom: 0;
  width: 46.35%;
  height: 44.49%;
}
.ausmute-part-tr {
  right: 0;
  top: 0;
  width: 46.35%;
  height: 44.49%;
}
.ausmute-part-tl {
  left: 0;
  top: 0;
  width: 44.49%;
  height: 46.35%;
}
.ausmute-part-br {
  right: 0;
  bottom: 0;
  width: 44.49%;
  height: 46.35%;
}
.ausmute-part-center {
  left: 8.59%;
  top: 8.59%;
  width: 82.82%;
  height: 82.82%;
}
.taya-badge {
  position: absolute;
  left: 3.33%;
  bottom: 0;
  width: 15.83%;
  height: auto;
  z-index: 2;
  pointer-events: none;
}
@media (max-width: 991px) {
  .panasonic-caption {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 36.5%;
    padding-top: 10px;
    padding-bottom: 0;
    align-items: start;
    gap: 0.5rem;
    min-height: 49px;
  }
  .panasonic-caption p {
    font-size: 9px;
    line-height: 1.5;
  }
  .panasonic-badge {
    width: 31.55%;
    left: 2.4%;
    bottom: 0;
  }
  .panasonic-wordmark {
    display: none;
  }
  .ausmute-caption,
  .taya-caption {
    min-height: 49px;
  }
  .ausmute-badge {
    width: 31.55%;
    left: 2.4%;
    bottom: 0;
  }
  .taya-badge {
    width: 30.48%;
    left: 4%;
    bottom: 4px;
  }
}
.facilities {
  position: relative;
  overflow: hidden;
  color: white;
  box-shadow: inset 0 4px 250px rgba(0, 0, 0, 0.25);
}
.facilities .carousel img {
  aspect-ratio: 16/9;
}
.facilities .carousel-prev {
  left: 40px;
}
.facilities .carousel-next {
  right: 40px;
}
.facilities > p {
  pointer-events: none;
}
.contact-head,
.contact-main {
  position: relative;
}
#contact-section {
  background: #5e0000 !important;
  color: white;
}
#contact-section:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  background: radial-gradient(circle at 80% 0, #a40000, transparent 60%);
  pointer-events: none;
}
#contact-section {
  position: relative;
  overflow: hidden;
}
.contact-container {
  position: relative;
}
@media (max-width: 991px) {
  .hero {
    height: max(100svh, clamp(720px, 216.28vw, 1000px));
    min-height: 0;
  }
  .hero-bg {
    background-image: url("../images/hero-mobile.svg");
  }
  .hero-content {
    max-width: 520px;
  }
  .hero-number {
    left: 9.07%;
    top: 16.34%;
    bottom: auto;
    width: 81.86%;
  }
  .hero-open {
    right: 16.98%;
    top: 32.47%;
    bottom: auto;
    width: 66.05%;
  }
  .hero-tagline {
    left: 4%;
    right: 4%;
    top: 43.66%;
    width: 92%;
    text-align: center;
    font-size: clamp(16px, 5.19vw, 22.33px);
    font-weight: 600;
    letter-spacing: 0.1em;
  }
  .hero-brand {
    right: 9.77%;
    top: 64.09%;
    width: 80.47%;
  }
  .hero-credit {
    right: 39.53%;
    bottom: 13.33%;
    width: 20.93%;
  }
  .life-inner {
    padding: 90px 40px;
  }
  .materials-inner {
    padding: 90px 28px;
  }
  .section-heading {
    text-align: center;
  }
  .section-heading h2 {
    margin-top: 0;
    font-weight: 700;
  }
  .life-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 56px auto 0;
    max-width: 480px;
  }
  .life-grid > .mall,
  .life-grid > .park,
  .life-grid > .lifestyle-mobile,
  .life-grid > .static-a {
    width: 100%;
  }
  .life-grid > .mall {
    order: 1;
  }
  .stat-six {
    order: 2;
  }
  .static-a {
    order: 3;
  }
  .stat-seven {
    order: 4;
  }
  .park {
    order: 5;
  }
  .stat-eight {
    order: 6;
  }
  .lifestyle-mobile {
    display: block;
    order: 7;
  }
  .static-b,
  .static-c,
  .static-d {
    display: none;
  }
  .stat {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 20px 0 57px;
  }
  .stat b {
    font-size: 60px;
    line-height: 1;
  }
  .stat-text {
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin-top: 0;
  }
  .stat-line1,
  .stat-line2 {
    display: inline;
  }
  .stat-slash-svg {
    display: none;
  }
  .stat-slash-char {
    display: inline;
  }
  .night-bg > img {
    aspect-ratio: 1;
  }
  .section-vignette {
    left: -13.95%;
    top: -15.81%;
    width: 92.33%;
  }
  .night > p,
  .facilities > p {
    top: 8.84%;
    left: 6.51%;
    font-size: 18px;
    font-weight: 500;
  }
  .night-logo,
  .night-light {
    display: none;
  }
  .materials-inner {
    padding-bottom: 90px;
  }
  .section-heading p {
    margin: 2em 0;
  }
  .brand-tabs {
    position: static;
    width: 100%;
    margin: 25px 0 18px;
    gap: 13px;
  }
  .brand-tabs button {
    width: 33.33%;
    min-height: 44px;
    padding: 6px 4px;
    flex-direction: column;
    gap: 2px;
  }
  .brand-tabs strong,
  .brand-tabs small {
    display: block;
    font-size: 10px;
    line-height: 1.15;
  }
  .brand-pictures {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .panasonic-pictures .panasonic-fig-1 {
    flex: 1 1 auto;
  }
  .brand-pictures img {
    height: auto;
    aspect-ratio: 374/218;
  }
  .ausmute-pictures .ausmute-fig img {
    aspect-ratio: 374/440;
    object-position: 56% 50%;
  }
  .taya-mobile-only {
    display: block;
  }
  .facilities .carousel img {
    aspect-ratio: 1;
  }
  .facilities .carousel figure img {
    object-position: var(--carousel-mobile-position, center);
  }
  .facilities .carousel-prev {
    left: 10px;
  }
  .facilities .carousel-next {
    right: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
}

.night-light {
  inset: auto;
  mix-blend-mode: soft-light;
  transform: none;
  opacity: 1;
  background: none;
}
.night-light img {
  width: 100%;
}
.night-light-1 {
  left: 6.25%;
  top: 42.13%;
  width: 38.75%;
}
.night-light-2 {
  left: 55.78%;
  top: 35.46%;
  width: 39.06%;
}
.night-light-3 {
  left: 32.66%;
  top: 49.44%;
  width: 25.42%;
}
#contact-section:before {
  display: none;
}
.contact-glow {
  position: absolute;
  /* Keep both edges covered at the furthest point of the GSAP movement. */
  inset: -35% -40%;
  pointer-events: none;
  background: radial-gradient(
    closest-side at 62% 35%,
    #a30000 0%,
    rgba(163, 0, 0, 0) 100%
  );
}
#contact-section {
  animation: none !important;
}
@media (max-width: 991px) {
  .stat-seven,
  .stat-eight {
    align-self: flex-start;
  }
  .night-light {
    display: none;
  }
}

@media (max-width: 991px) {
  .night-logo {
    display: none;
  }
}

.static-e {
  grid-column: 7/9;
  grid-row: 2;
}
@media (max-width: 991px) {
  .static-e {
    display: none;
  }
}
.char {
  display: inline-block;
  will-change: transform, opacity;
}
