@charset "utf-8";
/* =====================================================================
   main.css — 메인페이지(풀페이지 11섹션)
   ===================================================================== */
html.main, html.main body { overflow: hidden; height: 100%; }
html.main body::-webkit-scrollbar { display: none; }
.main_wrap { width: 100%; height: 100%; }
#fullpage { position: relative; width: 100%; will-change: transform; transition: transform 1s var(--ease-inout); }
#fullpage.is-dragging { transition: none; }
.section { position: relative; width: 100%; height: var(--vh); overflow: hidden; }
.section.section_footer { height: auto; }
.section__caption { position: absolute; z-index: 2; bottom: 20px; right: 20px; color: var(--white); font-size: 13px; line-height: 1; }
@media (max-width: 1024px) { .section__caption { bottom: calc(12 / var(--width) * var(--device-width)); right: var(--page-margin); font-size: calc(10 / var(--width) * var(--device-width)); } }
/* 기준 해상도(1920×950 / 390×748) 대비 스케일 — 원본의 cover-item-scale 역할 */
.section { --cover-scale: max(calc(var(--device-width) / 1920px * 1), calc(var(--vh) / 950px * 1)); }

/* =====================================================================
   INTRO
   ===================================================================== */
.intro { --intro-mask-size: -30%; --intro-mask-feather: 30%; position: fixed; z-index: 10000; inset: 0; display: none; width: 100%; height: var(--vh); overflow: hidden; background: #e7dfd8; isolation: isolate; }
html.is-main-intro-enabled .intro { display: block; }
.intro.is-complete { display: none; }
@media (min-width: 1025px) {
  .intro.is-leaving { -webkit-mask-image: radial-gradient(circle at 50% 50%, transparent var(--intro-mask-size), #000 calc(var(--intro-mask-size) + var(--intro-mask-feather))); mask-image: radial-gradient(circle at 50% 50%, transparent var(--intro-mask-size), #000 calc(var(--intro-mask-size) + var(--intro-mask-feather))); transition: --intro-mask-size 1.4s var(--ease-inout); }
}
.intro.is-leaving { animation: intro-leave 1.3s var(--ease-inout) forwards; }
@keyframes intro-leave { to { opacity: 0; } }
.intro__loading, .intro__scene, .intro__media, .intro__poster, .intro__poster img, .intro__video { position: absolute; inset: 0; width: 100%; height: 100%; }
.intro__loading { z-index: 20; display: flex; flex-direction: column; gap: 14px; align-items: center; justify-content: center; color: rgba(66, 53, 45, 0.76); background: #eee8e2; transition: opacity .5s ease, visibility .5s; }
.intro[data-intro-state]:not([data-intro-state="loading"]) .intro__loading { opacity: 0; visibility: hidden; }
.intro__loading_symbol { width: 34px; height: 34px; border: 1px solid rgba(66, 53, 45, 0.22); border-top-color: currentColor; border-radius: 50%; animation: intro-loading-spin 1s linear infinite; }
.intro__loading_text { font-family: var(--font-en); font-size: 11px; letter-spacing: 0.24em; }
@keyframes intro-loading-spin { to { transform: rotate(360deg); } }
.intro__scene { z-index: 1; overflow: hidden; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.intro__scene.is-active { opacity: 1; visibility: visible; }
.intro__media { z-index: 0; overflow: hidden; }
.intro__poster img, .intro__video { object-fit: cover; object-position: 50% 50%; }
.intro__video { z-index: 1; opacity: 0; }
.intro__video.is-playing { opacity: 1; }
.intro__img_wrap, .intro__copy { position: absolute; z-index: 2; transform: translate(-50%, -50%) scale(var(--cover-scale, 1)); transform-origin: 50% 50%; }
.intro__img_wrap { width: 610px; height: 740px; left: calc(1402 / 1920 * 100%); top: calc(475 / 950 * 100%); }
.intro__scene-01 .intro__img_wrap { left: calc(740 / 1920 * 100%); top: calc(475 / 950 * 100%); width: 356px; height: 303px; }
.intro__figure, .intro__image { display: block; width: 100%; height: 100%; }
.intro__figure { overflow: hidden; margin: 0; clip-path: inset(0 100% 100% 0); transition: clip-path 1.2s var(--ease-out); }
.intro__scene.is-active .intro__figure { clip-path: inset(0); }
.intro__image { object-fit: cover; }
.intro__image-contain { object-fit: contain; }
.intro__copy { font-family: var(--font-serif); font-size: 40px; font-weight: 400; line-height: 1.5; letter-spacing: -0.04em; text-align: center; white-space: nowrap; color: var(--label-strong); }
.intro__scene-01 .intro__copy { left: calc(1175 / 1920 * 100%); top: calc(530 / 950 * 100%); }
.intro__scene-02 .intro__copy { left: calc(895 / 1920 * 100%); top: calc(705 / 950 * 100%); }
.intro__title { opacity: 0; transform: translateY(20px); transition: opacity .9s ease .4s, transform .9s var(--ease-out) .4s; }
.intro__scene.is-active .intro__title { opacity: 1; transform: translateY(0); }
.intro__logo, .intro__logotype { position: absolute; z-index: 3; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.intro__logo { width: 180px; }
.intro__logo img { display: block; width: 100%; opacity: 0; filter: brightness(0) invert(1); transition: opacity .8s ease; }
.intro__scene-03.is-active .intro__logo img { opacity: 1; }
.intro__scene-03.is-logotype .intro__logo img { opacity: 0; }
.intro__logotype { --intro-bar-scale: 0; display: flex; width: min(77.083vw, 1480px); align-items: center; justify-content: center; gap: min(1.563vw, 30px); }
.intro__logotype_img { width: min(16.823vw, 323px); }
.intro__logotype_en { width: min(49.323vw, 947px); }
.intro__logotype_img img, .intro__logotype_en img { width: 100%; filter: brightness(0) invert(1); }
.intro__logotype_img, .intro__logotype_en { opacity: 0; transform: translateY(14px); transition: opacity .8s ease, transform .8s var(--ease-out); }
.intro__logotype_bar { flex: 0 0 min(7.813vw, 150px); height: 1px; background: var(--white); transform: scaleX(0); transform-origin: 50% 50%; transition: transform .9s var(--ease-inout) .2s; }
.intro__scene-03.is-logotype .intro__logotype_img, .intro__scene-03.is-logotype .intro__logotype_en { opacity: 1; transform: translateY(0); }
.intro__scene-03.is-logotype .intro__logotype_bar { transform: scaleX(1); }
.intro__skip { position: absolute; z-index: 30; right: 60px; bottom: 60px; width: 80px; height: 80px; opacity: 0; transition: opacity .25s ease; }
.intro[data-intro-state]:not([data-intro-state="loading"]) .intro__skip { opacity: 1; }
.intro__skip_button { display: flex; width: 100%; height: 100%; border-radius: 50%; align-items: center; justify-content: center; color: var(--white); background: rgba(74, 66, 61, 0.34); backdrop-filter: blur(4px); font-family: var(--font-en); font-size: 16px; line-height: 1; letter-spacing: 0.04em; transition: background-color .25s ease, transform .25s ease; }
.intro__skip_button:hover { background: rgba(74, 66, 61, 0.56); transform: scale(1.06); }
.intro.is-leaving .intro__skip { opacity: 0; pointer-events: none; }
@media (max-width: 1024px) {
  .intro__img_wrap { width: 310px; height: 377px; left: 50%; top: calc(410.5 / 748 * 100%); }
  .intro__scene-01 .intro__img_wrap { left: 50%; top: calc(330 / 748 * 100%); height: 150px; width: 310px; }
  .intro__copy { width: 330px; font-size: 24px; line-height: 1.45; white-space: normal; }
  .intro__scene-01 .intro__copy { left: 50%; top: calc(500 / 748 * 100%); }
  .intro__scene-02 .intro__copy { left: 50%; top: calc(126 / 748 * 100%); }
  .intro__logo { width: min(38.462vw, 150px); }
  .intro__logotype { flex-direction: column; width: min(90.513vw, 353px); gap: min(3.59vw, 14px); }
  .intro__logotype_img { width: min(49.744vw, 194px); }
  .intro__logotype_en { width: min(90.513vw, 353px); }
  .intro__logotype_bar { width: 1px; height: 52px; flex-basis: 52px; transform: scaleY(0); }
  .intro__scene-03.is-logotype .intro__logotype_bar { transform: scaleY(1); }
  .intro__skip { right: auto; bottom: calc(50px + env(safe-area-inset-bottom, 0px)); left: 50%; width: 50px; height: 50px; transform: translateX(-50%); }
  .intro__skip_button { font-size: 11px; }
}

/* =====================================================================
   HERO
   ===================================================================== */
.hero { position: relative; color: var(--white); }
.hero__media, .hero__image { display: block; width: 100%; height: 100%; }
.hero__media { position: absolute; inset: 0; }
.hero__image { object-fit: cover; object-position: 50% 65%; transform: scale(1.1); transform-origin: 50% 50%; }
.hero__copy { position: absolute; z-index: 2; left: 50%; top: calc(210 / 950 * 100%); color: var(--label-primary); transform: translate(-50%, -50%) scale(var(--cover-scale, 1)); white-space: nowrap; display: flex; flex-direction: column; align-items: center; }
.hero__eyebrow, .hero__slogan { font-family: var(--font-serif); }
.hero__eyebrow { font-weight: 500; font-size: 38px; }
.hero__slogan_row { display: flex; align-items: baseline; gap: 20px; }
.hero__slogan { font-size: 76px; letter-spacing: -0.08em; font-weight: 700; line-height: 1.2; }
.hero__slogan_em { position: relative; top: -32px; display: inline-block; }
.hero__slogan_em_text { display: inline-block; padding: 0 10px; clip-path: inset(100% 0 0); opacity: 0; transform: translateY(55%); }
.hero__slogan_em::after { content: ''; position: absolute; left: 16%; right: 10%; bottom: 0; height: 3px; margin: 0 0 -16px; background: currentColor; transform: scaleX(0); transform-origin: 0 50%; }
.hero__project { margin: 20px 0 0; font-size: 38px; font-weight: 700; }
.hero__eyebrow, .hero__slogan, .hero__project { opacity: 0; }
.hero__interest { position: absolute; z-index: 3; right: var(--page-margin); bottom: var(--header-height); display: flex; width: calc(144 / var(--width) * var(--device-width)); height: calc(144 / var(--width) * var(--device-width)); align-items: center; justify-content: center; color: var(--white); text-align: center; }
.hero__interest_label { position: relative; z-index: 1; display: flex; flex-direction: column; font-size: calc(18 / var(--width) * var(--device-width)); font-weight: 800; letter-spacing: -0.03em; line-height: 1.3; }
.hero__interest_circle { position: absolute; inset: 0; animation: hero-interest-circle-rotate 40s linear infinite; }
.hero__interest_circle svg { display: block; width: 100%; height: 100%; overflow: visible; }
.hero__interest_circle text { fill: currentColor; font-family: var(--font-base); font-size: calc(13 / var(--width) * var(--device-width)); letter-spacing: 0.1em; font-weight: 500; }
.hero__scroll { display: none; }
/* 히어로 인트로 애니메이션 */
.hero.is-intro-playing .hero__image { animation: hero-image-zoom-out 4s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero.is-intro-playing .hero__eyebrow { animation: hero-copy-fade-in 1s ease .6s both; }
.hero.is-intro-playing .hero__slogan { animation: hero-copy-fade-in 1.1s ease 1.5s both; }
.hero.is-intro-playing .hero__slogan_em::after { animation: hero-slogan-line-draw 1.2s var(--ease-inout) 2.3s both; }
.hero.is-intro-playing .hero__slogan_em_text { animation: hero-slogan-em-rise 1.2s var(--ease-out) 2.3s both; }
.hero.is-intro-playing .hero__project { animation: hero-copy-fade-in 1s ease 3s both; }
.hero.is-intro-complete .hero__image { transform: scale(1); }
.hero.is-intro-complete .hero__eyebrow, .hero.is-intro-complete .hero__slogan, .hero.is-intro-complete .hero__project, .hero.is-intro-complete .hero__slogan_em_text { opacity: 1; transform: translateY(0); }
.hero.is-intro-complete .hero__slogan_em_text { clip-path: inset(0 0 0); }
.hero.is-intro-complete .hero__slogan_em::after { transform: scaleX(1); }
@keyframes hero-image-zoom-out { from { transform: scale(1.1); } to { transform: scale(1); } }
@keyframes hero-copy-fade-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hero-slogan-line-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes hero-slogan-em-rise { from { clip-path: inset(100% 0 0); opacity: 0; transform: translateY(55%); } to { clip-path: inset(0 0 0); opacity: 1; transform: translateY(0); } }
@keyframes hero-interest-circle-rotate { to { transform: rotate(360deg); } }
@media (max-width: 1024px) {
  .section { --cover-scale: max(calc(var(--device-width) / 390px * 1), calc(var(--vh) / 748px * 1)); }
  .hero__copy { width: 330px; top: calc(204 / 748 * 100%); white-space: normal; }
  .hero__eyebrow { font-size: 18px; margin-left: 10px; margin-right: auto; }
  .hero__slogan_row { flex-direction: column; align-items: center; width: 100%; gap: 0; }
  .hero__slogan { font-size: 50px; }
  .hero__slogan_em { top: -17px; }
  .hero__slogan_em::after { margin-bottom: -12px; }
  .hero__project { margin: 13px 10px 0 auto; font-size: 18px; line-height: 1.35; text-align: right; }
  .hero__interest { bottom: calc(var(--header-height) / 2); width: calc(100 / var(--width) * var(--device-width)); height: calc(100 / var(--width) * var(--device-width)); }
  .hero__interest_label { font-size: calc(14 / var(--width) * var(--device-width)); }
  .hero__interest_circle text { font-size: calc(10 / var(--width) * var(--device-width)); letter-spacing: 0.16em; }
  .hero__scroll { position: absolute; z-index: 3; left: 50%; bottom: calc(13 / var(--width) * var(--device-width)); display: flex; flex-direction: column; align-items: center; color: var(--white); transform: translate(-50%, 18px); opacity: 0; transition: opacity .8s ease, transform .9s var(--ease-out); }
  html.is-hero-intro-complete .hero__scroll { opacity: 1; transform: translate(-50%, 0); }
  .hero__scroll_text { margin-bottom: calc(6 / var(--width) * var(--device-width)); font-size: calc(10 / var(--width) * var(--device-width)); line-height: 1; letter-spacing: -0.03em; }
  .hero__scroll_line { position: relative; width: 1px; height: calc(25 / var(--width) * var(--device-width)); background: rgba(255, 255, 255, 0.3); overflow: hidden; }
  .hero__scroll_line::after { content: ''; position: absolute; inset: 0; background: currentColor; transform: translateY(-105%); animation: hero-scroll-line-move 2s ease-in-out infinite; }
  @keyframes hero-scroll-line-move { 0% { transform: translateY(-105%); } 50%, 100% { transform: translateY(105%); } }
}

/* =====================================================================
   VISUAL (영상)
   ===================================================================== */
.visual { --visual-mask-width: 20.833%; --visual-mask-height: 67.368%; position: relative; color: var(--white); background: #1d1a17; }
.visual__media, .visual__gradient, .visual__veil { position: absolute; inset: 0; }
.visual__poster, .visual__video { position: absolute; inset: 0; width: 100%; height: 100%; }
.visual__image, .visual__video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.bg-video { opacity: 0; transition: opacity .35s ease; }
.bg-video.is-ready { opacity: 1; }
.visual__veil, .visual__marquee { -webkit-mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0); -webkit-mask-position: 0 0, 50% 50%; -webkit-mask-size: 100% 100%, var(--visual-mask-width) var(--visual-mask-height); -webkit-mask-repeat: no-repeat; -webkit-mask-composite: xor; mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0); mask-position: 0 0, 50% 50%; mask-size: 100% 100%, var(--visual-mask-width) var(--visual-mask-height); mask-repeat: no-repeat; mask-composite: exclude; }
.visual__veil { z-index: 1; pointer-events: none; background: rgba(0, 0, 0, 0.7); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); transition: -webkit-mask-size 1.6s var(--ease-inout), mask-size 1.6s var(--ease-inout); }
.visual[data-step-index="1"] .visual__veil, .visual[data-step-index="1"] .visual__marquee { -webkit-mask-size: 100% 100%, 160% 160%; mask-size: 100% 100%, 160% 160%; }
.visual__gradient { z-index: 2; opacity: 0; pointer-events: none; background: linear-gradient(90deg, transparent 45%, rgba(35, 25, 16, 0.58) 100%); transition: opacity 1.2s ease 0.35s; }
.visual[data-step-index="1"] .visual__gradient { opacity: 1; }
.visual__marquee { position: absolute; z-index: 3; inset: 0; overflow: hidden; opacity: 1; transition: opacity 1.2s ease, -webkit-mask-size 1.6s var(--ease-inout), mask-size 1.6s var(--ease-inout); }
.visual[data-step-index="1"] .visual__marquee { opacity: 0; }
.visual__marquee_track { position: absolute; top: 50%; left: 0; display: flex; width: max-content; animation: visual-marquee-flow 30s linear infinite; }
.visual__marquee_track span { padding-right: 0.3em; color: transparent; font-size: calc(120 / var(--width) * var(--device-width)); font-weight: 800; line-height: 1; letter-spacing: -0.045em; white-space: nowrap; -webkit-text-stroke: 1px rgba(255, 255, 255, 0.52); }
@keyframes visual-marquee-flow { from { transform: translate(0, -50%); } to { transform: translate(-50%, -50%); } }
.visual__copy_anchor { position: absolute; z-index: 3; top: calc(413.25 / 950 * 100%); left: calc(1140 / 1920 * 100%); width: 520px; transform: scale(var(--cover-scale, 1)); transform-origin: left top; }
.visual__copy { position: relative; width: 100%; opacity: 0; visibility: hidden; transform: translateX(40px); font-family: var(--font-dodum); transition: opacity 1.2s ease, transform 1.6s var(--ease-out), visibility 1.6s; }
.visual[data-step-index="1"] .visual__copy { opacity: 1; visibility: visible; transform: translateX(0); }
.visual__title { margin: 0 0 32px; font-size: 44px; font-weight: 400; line-height: 1.4; letter-spacing: 0.02em; }
.visual__description { margin: 0; font-size: 22px; font-weight: 400; line-height: 1.55; letter-spacing: -0.02em; }
@media (max-width: 1024px) {
  .visual { --visual-mask-width: 64.103%; --visual-mask-height: 52.273%; }
  .visual__gradient { background: linear-gradient(180deg, rgba(24, 17, 10, 0.56) 0%, rgba(24, 17, 10, 0.18) 38%, transparent 62%); }
  .visual__marquee_track { animation-duration: 24s; }
  .visual__marquee_track span { font-size: 82px; -webkit-text-stroke-color: rgba(255, 255, 255, 0.58); }
  .visual__copy_anchor { top: calc(103.972 / 748 * 100%); left: 20px; width: 370px; transform: none; }
  .visual__copy { transform: translateY(-30px); }
  .visual[data-step-index="1"] .visual__copy { transform: translateY(0); }
  .visual__title { margin-bottom: 22px; font-size: 32px; }
  .visual__description { font-size: 16px; line-height: 1.5; }
}

/* =====================================================================
   SCHEDULE
   ===================================================================== */
.schedule { position: relative; overflow: hidden; color: var(--white); background: #4b5460; }
.schedule__media, .schedule__poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.schedule__media::after { content: ""; position: absolute; z-index: 1; inset: 0; background: rgba(0, 0, 0, 0.2); pointer-events: none; }
.schedule__image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; backface-visibility: hidden; animation: schedule-camera-move 12s var(--ease-inout) infinite alternate both paused; }
.schedule.active .schedule__image { animation-play-state: running; }
.schedule__inner { position: relative; z-index: 2; display: flex; width: calc(1020 / var(--width) * var(--device-width)); height: 100%; margin: 0 auto; flex-direction: column; justify-content: center; }
.schedule__title { margin: 0 0 calc(44 / var(--width) * var(--device-width)); font-family: var(--font-en); font-size: calc(50 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1; text-align: center; }
.schedule__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(20 / var(--width) * var(--device-width)); }
.schedule__item { position: relative; display: flex; min-height: calc(180 / var(--width) * var(--device-width)); padding: calc(30 / var(--width) * var(--device-width)); flex-direction: column; border: 1px solid rgba(255, 255, 255, 0.8); border-radius: calc(16 / var(--width) * var(--device-width)); background: rgba(63, 55, 36, 0.2); transition: color .35s ease, background-color .35s ease, border-color .35s ease; }
.schedule__item.is-highlight { background: var(--white); color: var(--label-strong); }
.schedule__name { font-size: calc(23 / var(--width) * var(--device-width)); font-weight: 700; }
.schedule__date { margin-top: calc(4 / var(--width) * var(--device-width)); font-size: calc(20 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1.5; }
.schedule__calendar { position: absolute; right: calc(20 / var(--width) * var(--device-width)); bottom: calc(20 / var(--width) * var(--device-width)); width: calc(19 / var(--width) * var(--device-width)); height: calc(19 / var(--width) * var(--device-width)); }
.schedule__item.is-highlight .schedule__calendar { display: none; }
.schedule__actions { display: grid; margin-top: calc(70 / var(--width) * var(--device-width)); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(30 / var(--width) * var(--device-width)); }
.schedule__link { display: flex; min-height: calc(64 / var(--width) * var(--device-width)); padding: 0 calc(62 / var(--width) * var(--device-width)); align-items: center; justify-content: space-between; border-radius: 999px; color: var(--white); background: rgba(63, 55, 36, 0.4); backdrop-filter: blur(10px); font-size: calc(18 / var(--width) * var(--device-width)); font-weight: 500; transition: color .35s ease, background-color .35s ease, transform .35s var(--ease-out); }
.schedule__link img { width: calc(24 / var(--width) * var(--device-width)); height: calc(24 / var(--width) * var(--device-width)); filter: invert(1); }
.schedule__title, .schedule__list, .schedule__actions { opacity: 0; transform: translateY(28px); transition: opacity 0.8s ease, transform 0.9s var(--ease-out); }
.schedule.active .schedule__title, .schedule.active .schedule__list, .schedule.active .schedule__actions { opacity: 1; transform: translateY(0); }
.schedule__list { transition-delay: 0.18s; }
.schedule__actions { transition-delay: 0.36s; }
@media (min-width: 1025px) and (hover: hover) {
  .schedule__item:hover { border-color: var(--white); background: rgba(63, 55, 36, 0.6); }
  .schedule__item.is-highlight:hover { background: var(--white); color: var(--label-primary); }
  .schedule__link:hover { color: var(--label-normal); background: var(--white); transform: translateY(-5px); }
  .schedule__link:hover img { filter: none; }
}
@keyframes schedule-camera-move { from { transform: translate3d(-1.5%, -1%, 0) scale(1.16); } to { transform: translate3d(1.5%, 1%, 0) scale(1.04); } }
@media (max-width: 1024px) {
  .schedule__inner { width: auto; padding: calc(var(--header-height) + calc(10 / var(--width) * var(--device-width))) var(--page-margin) calc(30 / var(--width) * var(--device-width)); }
  .schedule__title { margin-bottom: calc(34 / var(--width) * var(--device-width)); font-size: calc(30 / var(--width) * var(--device-width)); }
  .schedule__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(10 / var(--width) * var(--device-width)); }
  .schedule__item { min-height: calc(84 / var(--width) * var(--device-width)); padding: calc(15 / var(--width) * var(--device-width)); border-radius: calc(10 / var(--width) * var(--device-width)); }
  .schedule__name { font-size: calc(15 / var(--width) * var(--device-width)); }
  .schedule__date { margin-top: 0; font-size: calc(14 / var(--width) * var(--device-width)); }
  .schedule__calendar { right: calc(10 / var(--width) * var(--device-width)); bottom: calc(10 / var(--width) * var(--device-width)); width: calc(13 / var(--width) * var(--device-width)); height: calc(13 / var(--width) * var(--device-width)); }
  .schedule__actions { grid-template-columns: minmax(0, 1fr); gap: calc(10 / var(--width) * var(--device-width)); margin-top: calc(26 / var(--width) * var(--device-width)); }
  .schedule__link { min-height: calc(54 / var(--width) * var(--device-width)); padding: 0 calc(52 / var(--width) * var(--device-width)); font-size: calc(16 / var(--width) * var(--device-width)); }
}

/* =====================================================================
   INTERIOR
   ===================================================================== */
.interior { position: relative; overflow: hidden; color: var(--white); background: #8b725b; }
.interior__scene { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.interior__scene-base { z-index: 1; }
.interior__scene-next { z-index: 2; }
.interior__panel, .interior__panel picture, .interior__panel img { display: block; width: 100%; height: 100%; }
.interior__panel { position: relative; overflow: hidden; }
.interior__panel img { object-fit: cover; object-position: 50% 50%; backface-visibility: hidden; animation-duration: 10s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-direction: alternate; animation-fill-mode: both; animation-play-state: paused; }
.interior__panel-first img { animation-name: interior-camera-first; }
.interior__panel-second img { animation-name: interior-camera-second; }
.interior.active .interior__scene.is-active .interior__panel img { animation-play-state: running; }
.interior__scene-next .interior__panel { transition: clip-path 1.6s var(--ease-inout); }
.interior__scene-next .interior__panel-first { clip-path: inset(0 0 100% 0); }
.interior__scene-next .interior__panel-second { clip-path: inset(100% 0 0 0); }
.interior__scene-next.is-active .interior__panel { clip-path: inset(0); }
.interior__copy_anchor { position: absolute; z-index: 3; top: calc(405 / 950 * 100%); left: 50%; transform: scale(var(--cover-scale, 1)); transform-origin: left top; }
.interior__copy { width: 720px; opacity: 0; text-align: center; transform: translateX(-50%); transition: opacity 1s var(--ease-inout); }
.interior.active .interior__copy { opacity: 1; transition-delay: 0.6s; }
.interior__title { margin: 0; font-family: var(--font-en); font-size: 120px; font-weight: 300; line-height: 1; letter-spacing: -0.045em; }
.interior__description { margin: 26px 0 0; font-size: 18px; font-weight: 500; line-height: 1.6; }
.interior__imgcut { position: absolute; right: 20px; bottom: 20px; color: #fff; font-size: 14px; z-index: 100; }
@keyframes interior-camera-first { from { transform: translate3d(-3%, -2%, 0) scale(1.35); } to { transform: translate3d(2%, 6%, 0) scale(1.2); } }
@keyframes interior-camera-second { from { transform: translate3d(2%, 6%, 0) scale(1.2); } to { transform: translate3d(-3%, -2%, 0) scale(1.35); } }
@media (max-width: 1024px) {
  .interior__scene { grid-template-columns: 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); }
  .interior__scene-next .interior__panel-first { clip-path: inset(0 100% 0 0); }
  .interior__scene-next .interior__panel-second { clip-path: inset(0 0 0 100%); }
  .interior__scene-next.is-active .interior__panel { clip-path: inset(0); }
  .interior__copy_anchor { top: calc(289 / 748 * 100%); }
  .interior__copy { width: 350px; }
  .interior__title { font-size: 80px; }
  .interior__description { margin-top: 22px; font-size: 15px; line-height: 1.7; }
  .interior__imgcut { right: var(--page-margin); bottom: 12px; font-size: 10px; }
}

/* =====================================================================
   UNIT
   ===================================================================== */
.unit { position: relative; overflow: hidden; color: var(--label-normal); background: #f1efec; }
.unit__media { position: absolute; inset: 0; }
.unit__background { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.unit__inner { position: relative; z-index: 1; display: flex; width: calc(1600 / var(--width) * var(--device-width)); height: 100%; margin: 0 auto; padding: calc(var(--header-height) + calc(50 / var(--width) * var(--device-width))) 0 calc(60 / var(--width) * var(--device-width)); flex-direction: column; justify-content: center; }
.unit__copy { display: flex; align-items: flex-end; }
.unit__title { font-family: var(--font-dodum); color: var(--label-strong); font-size: calc(38 / var(--width) * var(--device-width)); line-height: 1.3; font-weight: 400; letter-spacing: -0.02em; }
.unit__description { font-size: calc(18 / var(--width) * var(--device-width)); line-height: 1.3; text-align: right; margin-left: auto; }
.unit__description p + p { margin-top: calc(20 / var(--width) * var(--device-width)); }
.unit__slider { width: 100%; margin-top: calc(70 / var(--width) * var(--device-width)); overflow: visible; }
.unit__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(80 / var(--width) * var(--device-width)); }
.unit__card { position: relative; display: block; overflow: hidden; isolation: isolate; width: 100%; aspect-ratio: 456 / 578; border-radius: calc(300 / var(--width) * var(--device-width)) calc(300 / var(--width) * var(--device-width)) 0 0; color: var(--white); }
.unit__card::after { content: ''; position: absolute; z-index: 1; inset: 0; background: rgba(0, 0, 0, 0.4); pointer-events: none; transition: background-color .4s ease; }
.unit__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transition: transform .9s var(--ease-out); }
.unit__type { position: absolute; z-index: 2; top: 50%; left: 50%; display: flex; align-items: baseline; font-family: var(--font-en); font-size: calc(62 / var(--width) * var(--device-width)); line-height: 1; white-space: nowrap; color: var(--white); transform: translate(-50%, -50%); transition: text-shadow .4s ease; }
.unit__type strong { font-weight: 400; }
.unit__type span { margin-left: calc(10 / var(--width) * var(--device-width)); font-weight: 200; }
.unit__title, .unit__description, .unit__slider { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease-inout), transform 1s var(--ease-inout); }
.unit.active .unit__title, .unit.active .unit__description, .unit.active .unit__slider { opacity: 1; transform: translateY(0); }
.unit__description { transition-delay: 0.3s; }
.unit__slider { transition-delay: 0.6s; }
@media (min-width: 1025px) and (hover: hover) {
  .unit__card:hover::after { background: rgba(0, 0, 0, 0.2); }
  .unit__card:hover .unit__image { transform: scale(1.05); }
  .unit__card:hover .unit__type { text-shadow: 0 2px 1px rgba(0, 0, 0, 0.45), 0 10px 22px rgba(0, 0, 0, 0.5); }
}
@media (max-width: 1024px) {
  .unit__inner { width: 100%; padding: calc(var(--header-height) + calc(24 / var(--width) * var(--device-width))) 0 calc(68 / var(--width) * var(--device-width)); }
  .unit__copy { display: block; padding: 0 var(--page-margin); }
  .unit__title { font-size: calc(22 / var(--width) * var(--device-width)); line-height: 1.4; }
  .unit__description { margin-top: calc(20 / var(--width) * var(--device-width)); font-size: calc(14 / var(--width) * var(--device-width)); line-height: 1.4; text-align: left; }
  .unit__description p + p { margin-top: calc(16 / var(--width) * var(--device-width)); }
  .unit__slider { padding: calc(40 / var(--width) * var(--device-width)) 0 0 var(--page-margin); margin-top: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .unit__slider::-webkit-scrollbar { display: none; }
  .unit__list { display: flex; gap: calc(10 / var(--width) * var(--device-width)); width: max-content; padding-right: var(--page-margin); }
  .unit__item { flex: 0 0 calc(260 / var(--width) * var(--device-width)); scroll-snap-align: start; opacity: 0.8; transition: opacity .4s; }
  .unit__item.is-snapped { opacity: 1; }
  .unit__type { font-size: calc(38 / var(--width) * var(--device-width)); }
  .unit__type span { margin-left: calc(6 / var(--width) * var(--device-width)); }
}

/* =====================================================================
   PREMIUM (4단계)
   ===================================================================== */
.premium { --premium-background: #EEE9E3; position: relative; overflow: hidden; color: #111; background: var(--premium-background); }
.premium__step { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.premium__step.is-active { z-index: 3; pointer-events: auto; }
.premium__step.is-prev { z-index: 2; }
.premium__anchor { position: absolute; top: calc(90 / 950 * 100%); left: 50%; transform: scale(var(--cover-scale, 1)); transform-origin: 0 0; }
.premium__layout { position: relative; width: 1600px; height: 800px; transform: translateX(-50%); }
.premium__visual { position: absolute; z-index: 1; top: 0; left: 50%; overflow: hidden; width: 600px; height: 800px; margin-left: -300px; border-radius: 300px; }
.premium__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; transform: translateY(100%); transition: transform 1.2s cubic-bezier(0.76, 0, 0.24, 1); }
.premium__step.is-prev .premium__image { transform: translateY(-100%); }
.premium__step.is-active .premium__image { transform: translateY(0); }
.premium__caption { position: absolute; bottom: 20px; left: 50%; color: var(--white); font-size: 12px; line-height: 1; transform: translateX(-50%); }
.premium__display_title { position: absolute; z-index: 2; top: 100px; right: 50%; display: flex; align-items: baseline; margin-right: 300px; font-family: var(--font-en); font-size: 120px; line-height: 1; white-space: nowrap; color: inherit; transform: translateX(50%); }
.premium__display_title strong { font-size: 250px; font-weight: 400; }
.premium__display_title span { font-weight: 400; }
.premium__display_title sup { position: relative; top: -0.65em; font-size: 0.4em; }
.premium__title_mask { position: absolute; z-index: 3; inset: 0; overflow: hidden; color: var(--premium-background); clip-path: inset(0 500px 0 500px round 300px); pointer-events: none; }
.premium__layout > .premium__display_title { z-index: 0; }
.premium__title_mask .premium__display_title { text-shadow: 0 1px 3px rgba(0, 0, 0, 0.16); }
.premium__tagline, .premium__description { position: absolute; z-index: 4; margin: 0; }
.premium__tagline { top: 340px; right: 50%; margin-right: 360px; font-size: 32px; line-height: 1.4; letter-spacing: -0.02em; font-weight: 300; text-align: right; font-family: var(--font-dodum); }
.premium__description { left: 50%; bottom: 75px; width: 500px; margin-left: 300px; font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; }
.premium__display_title, .premium__tagline, .premium__description, .premium__caption { opacity: 0; translate: 0 24px; transition: opacity 0.55s ease, translate 0.75s var(--ease-out); }
.premium__step.is-prev .premium__display_title, .premium__step.is-prev .premium__tagline, .premium__step.is-prev .premium__description, .premium__step.is-prev .premium__caption { translate: 0 -18px; }
.premium__step.is-active .premium__display_title, .premium__step.is-active .premium__tagline, .premium__step.is-active .premium__description, .premium__step.is-active .premium__caption { opacity: 1; translate: 0 0; }
.premium__step.is-active .premium__display_title { transition-delay: 0.18s; }
.premium__step.is-active .premium__tagline { transition-delay: 0.32s; }
.premium__step.is-active .premium__description { transition-delay: 0.46s; }
.premium__step.is-active .premium__caption { transition-delay: 0.62s; }
.premium__dots { position: absolute; z-index: 5; right: var(--page-margin); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; }
.premium__dots button { width: 8px; height: 8px; border-radius: 50%; background: rgba(0, 0, 0, 0.2); transition: background .3s, transform .3s; }
.premium__dots button.is-active { background: var(--label-primary); transform: scale(1.3); }
@media (max-width: 1024px) {
  .premium__anchor { left: 0; top: 0; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; padding: var(--header-height) 0; transform: none; }
  .premium__layout { width: 100%; height: auto; transform: none; }
  .premium__visual { position: relative; inset: unset; width: calc(310 / var(--width) * var(--device-width)); height: calc(450 / var(--width) * var(--device-width)); margin: 0 auto; border-radius: calc(155 / var(--width) * var(--device-width)); }
  .premium__caption { bottom: calc(12 / var(--width) * var(--device-width)); font-size: calc(10 / var(--width) * var(--device-width)); }
  .premium__display_title { inset: unset; top: 0; margin: 0 0 0 var(--page-margin); font-size: calc(46 / var(--width) * var(--device-width)); transform: translateY(-50%); left: 0; right: auto; }
  .premium__display_title strong { font-size: calc(100 / var(--width) * var(--device-width)); line-height: 0.85; }
  .premium__title_mask { clip-path: inset(0 calc(40 / var(--width) * var(--device-width)) 0 calc(40 / var(--width) * var(--device-width)) round calc(155 / var(--width) * var(--device-width))); }
  .premium__tagline { top: 0; right: var(--page-margin); left: auto; margin-right: 0; font-size: calc(15 / var(--width) * var(--device-width)); transform: translateY(-50%); line-height: 1.45; }
  .premium__description { inset: unset; top: 100%; left: 0; width: 100%; font-size: calc(14 / var(--width) * var(--device-width)); line-height: 1.5; text-align: center; margin-left: 0; margin-top: calc(30 / var(--width) * var(--device-width)); }
}

/* =====================================================================
   LANDSCAPE (조경 슬라이더)
   ===================================================================== */
.landscape { position: relative; overflow: hidden; color: var(--white); background: #2d3a2b; }
.landscape__slider, .landscape__list { position: absolute; inset: 0; width: 100%; height: 100%; }
.landscape__slide { position: absolute; inset: 0; overflow: hidden; isolation: isolate; opacity: 0; transition: opacity 1s ease; }
.landscape__slide.is-active { opacity: 1; z-index: 1; }
.landscape__slide::after { content: ''; position: absolute; z-index: 1; inset: 0; background: rgba(0, 0, 0, 0.4); pointer-events: none; }
.landscape__media { position: absolute; inset: 0; margin: 0; }
.landscape__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; user-select: none; -webkit-user-drag: none; }
.landscape__copy { position: absolute; z-index: 2; top: calc(265 / 950 * 100%); left: 50%; width: min(calc(1600 / 1920 * 100%), 1600px); transform: translateX(-50%); pointer-events: none; }
.landscape__heading, .landscape__title { margin: 0; line-height: 1; opacity: 0; transform: translateX(24px); transition: opacity 0.65s ease, transform 0.8s var(--ease-out); }
.landscape__heading { color: transparent; font-size: calc(100 / var(--width) * var(--device-width)); font-weight: 800; -webkit-text-stroke: 1px rgba(255, 255, 255, 0.4); }
.landscape__title { font-family: var(--font-en); margin-top: calc(35 / var(--width) * var(--device-width)); color: var(--white); font-size: calc(32 / var(--width) * var(--device-width)); font-weight: 600; }
.landscape__slide.is-active .landscape__heading, .landscape__slide.is-active .landscape__title { opacity: 1; transform: translateX(0); }
.landscape__slide.is-active .landscape__title { transition-delay: 0.16s; }
.landscape__navigation { position: absolute; z-index: 5; bottom: calc(110 / 950 * 100%); left: 0; width: 100%; }
.landscape__navigation_list { display: grid; width: min(calc(1600 / 1920 * 100%), 1600px); margin: 0 auto; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(32 / var(--width) * var(--device-width)); }
.landscape__navigation_item { display: flex; min-width: 0; color: rgba(255, 255, 255, 0.42); flex-direction: column; align-items: stretch; font-size: calc(18 / var(--width) * var(--device-width)); line-height: 1; text-align: left; transition: color .4s ease, transform .4s ease; }
.landscape__number { font-family: var(--font-en); }
.landscape__progress { position: relative; display: block; width: 100%; height: 1px; margin: calc(36 / var(--width) * var(--device-width)) 0 calc(34 / var(--width) * var(--device-width)); background: rgba(255, 255, 255, 0.25); }
.landscape__progress_bar { position: absolute; inset: 0 auto 0 0; width: 100%; background: var(--white); transform: scaleX(var(--landscape-progress, 0)); transform-origin: 0 50%; }
.landscape__name { font-weight: 600; letter-spacing: -0.04em; }
.landscape__navigation_item.is-active { color: var(--white); }
.landscape__cursor { display: none; }
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  .landscape__navigation_item:hover { color: var(--white); transform: translateY(-5px); }
  .landscape__slider { cursor: none; }
  .landscape__cursor { position: absolute; z-index: 6; top: 0; left: 0; display: flex; width: 80px; height: 80px; border: 1px solid rgba(255, 255, 255, 0.7); border-radius: 50%; opacity: 0; color: var(--white); background: rgba(13, 16, 50, 0.18); backdrop-filter: blur(4px); align-items: center; justify-content: center; font-family: var(--font-en); font-size: 14px; line-height: 1; letter-spacing: 0.04em; pointer-events: none; transform: translate(-50%, -50%); transition: opacity 0.25s ease; }
  .landscape__cursor.is-visible { opacity: 1; }
}
@media (max-width: 1024px) {
  .landscape__copy { top: calc(148 / 748 * 100%); left: var(--page-margin); width: calc(100% - var(--page-margin) * 2); transform: none; }
  .landscape__heading { font-size: calc(54 / var(--width) * var(--device-width)); }
  .landscape__title { margin-top: calc(42 / var(--width) * var(--device-width)); font-size: calc(20 / var(--width) * var(--device-width)); }
  .landscape__navigation { bottom: var(--header-height); overflow-x: auto; padding: 8px var(--page-margin); scrollbar-width: none; }
  .landscape__navigation::-webkit-scrollbar { display: none; }
  .landscape__navigation_list { --item-w: calc(136 / var(--width) * var(--device-width)); box-sizing: content-box; width: max-content; padding-right: calc(100vw - var(--page-margin) * 2 - var(--item-w)); margin: 0; grid-template-columns: repeat(4, var(--item-w)); gap: calc(30 / var(--width) * var(--device-width)); }
  .landscape__navigation_item { font-size: calc(14 / var(--width) * var(--device-width)); }
  .landscape__progress { margin: calc(20 / var(--width) * var(--device-width)) 0; }
}

/* =====================================================================
   BRAND
   ===================================================================== */
.brand { overflow: hidden; color: var(--label-primary); background: var(--white); }
.brand__inner { position: relative; width: 100%; height: 100%; }
.brand__title { position: absolute; z-index: 2; top: calc(200 / 950 * 100%); left: calc(160 / var(--width) * var(--device-width)); margin: 0; font-family: var(--font-dodum); font-size: calc(40 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1.55; letter-spacing: -0.04em; }
.brand__title span { display: block; }
.brand__visual { position: absolute; bottom: 0; left: 0; width: 50%; height: calc(600 / 950 * 100%); margin: 0; overflow: hidden; }
.brand__visual picture, .brand__image { display: block; width: 100%; height: 100%; }
.brand__image { object-fit: cover; }
.brand__description { position: absolute; z-index: 1; top: calc(98 / 600 * 100%); left: calc(580 / 960 * 100%); color: var(--white); font-size: calc(16 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1.75; letter-spacing: -0.04em; }
.brand__description p { margin: 0 0 calc(28 / var(--width) * var(--device-width)); }
.brand__description p:last-child { margin-bottom: 0; }
.brand__identity { position: absolute; top: 50%; left: 75%; display: flex; width: calc(378 / var(--width) * var(--device-width)); transform: translate(-50%, -40%); flex-direction: column; align-items: center; }
.brand__logo { display: block; width: 100%; height: auto; }
.brand__link { display: flex; min-width: calc(170 / var(--width) * var(--device-width)); height: calc(48 / var(--width) * var(--device-width)); margin-top: calc(38 / var(--width) * var(--device-width)); padding: 0 calc(20 / var(--width) * var(--device-width)); border: 1px solid currentColor; border-radius: 999px; color: var(--label-primary); align-items: center; justify-content: center; gap: calc(14 / var(--width) * var(--device-width)); font-size: calc(16 / var(--width) * var(--device-width)); line-height: 1; }
.brand__link img { display: block; width: calc(13 / var(--width) * var(--device-width)); height: auto; }
.brand__title, .brand__description, .brand__logo, .brand__link { opacity: 0; transform: translateY(24px); transition: opacity 0.8s ease, transform 0.9s var(--ease-out); }
.brand__title { transition-delay: 0.3s; }
.brand__description { transition-delay: 0.5s; }
.brand__logo, .brand__link { transition-delay: 0.7s; }
.brand.active .brand__title, .brand.active .brand__description, .brand.active .brand__logo, .brand.active .brand__link { opacity: 1; transform: translateY(0); }
@media (max-width: 1024px) {
  .brand__title { top: calc(257 / 748 * 100%); left: var(--page-margin); font-size: calc(24 / var(--width) * var(--device-width)); }
  .brand__visual { right: calc(20 / var(--width) * var(--device-width)); left: 0; width: auto; height: calc(401 / 748 * 100%); }
  .brand__description { top: calc(36 / 400 * 100%); left: calc(60 / 370 * 100%); font-size: calc(14 / var(--width) * var(--device-width)); line-height: 1.55; }
  .brand__description p { margin-bottom: calc(26 / var(--width) * var(--device-width)); }
  .brand__identity { inset: 0; width: 100%; transform: none; }
  .brand__logo { position: absolute; top: calc(87 / 748 * 100%); right: var(--page-margin); width: calc(126 / var(--width) * var(--device-width)); }
  .brand__link { position: absolute; z-index: 2; right: calc(110 / var(--width) * var(--device-width)); bottom: calc(48 / var(--width) * var(--device-width)); height: calc(46 / var(--width) * var(--device-width)); margin-top: 0; padding: 0 calc(18 / var(--width) * var(--device-width)); color: var(--white); }
  .brand__link img { filter: brightness(0) invert(1); }
}

/* =====================================================================
   CONTACT
   ===================================================================== */
.contact { position: relative; overflow: hidden; color: var(--white); background: #211d19; }
.contact__background, .contact__poster, .contact__video, .contact__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.contact__background { overflow: hidden; }
.contact__poster, .contact__video { display: block; object-fit: cover; object-position: 50% 50%; }
.contact__overlay { z-index: 1; background: linear-gradient(90deg, rgba(0, 0, 0, 0.08) 48%, rgba(0, 0, 0, 0.42) 100%); pointer-events: none; }
.contact__inner { position: absolute; z-index: 2; inset: 0; display: flex; width: 100%; padding: var(--header-height) var(--page-margin) 0; flex-direction: column; justify-content: center; align-items: center; }
.contact__intro { display: flex; width: 100%; align-items: center; justify-content: space-between; }
.contact__location { display: flex; width: 100%; margin-top: calc(100 / var(--width) * var(--device-width)); justify-content: center; align-items: center; gap: calc(110 / var(--width) * var(--device-width)); }
.contact__title { margin: 0; font-family: var(--font-dodum); font-size: calc(40 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1.55; letter-spacing: -0.03em; }
.contact__bar { display: block; height: 1px; margin: 0 calc(40 / var(--width) * var(--device-width)); flex: 1 1 auto; background: rgba(255, 255, 255, 0.45); }
.contact__description { margin: 0; font-size: calc(16 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1.8; letter-spacing: -0.03em; white-space: nowrap; }
.contact__map { width: calc(480 / var(--width) * var(--device-width)); margin: 0; flex: 0 0 auto; }
.contact__map img { display: block; width: 100%; height: auto; }
.contact__cards { display: grid; width: calc(450 / var(--width) * var(--device-width)); gap: calc(18 / var(--width) * var(--device-width)); flex: 0 0 auto; }
.contact__card { min-height: calc(180 / var(--width) * var(--device-width)); padding: calc(30 / var(--width) * var(--device-width)) calc(20 / var(--width) * var(--device-width)); background: rgba(19, 16, 14, 0.3); backdrop-filter: blur(3px); }
.contact__card_title { font-size: calc(20 / var(--width) * var(--device-width)); font-weight: 700; }
.contact__address { margin: calc(10 / var(--width) * var(--device-width)) 0 0; font-size: calc(16 / var(--width) * var(--device-width)); font-weight: 400; line-height: 1.75; letter-spacing: -0.03em; }
.contact__map_links { display: flex; margin-top: calc(24 / var(--width) * var(--device-width)); align-items: center; gap: calc(18 / var(--width) * var(--device-width)); }
.contact__map_links a, .contact__map_links img { display: block; width: calc(24 / var(--width) * var(--device-width)); height: calc(24 / var(--width) * var(--device-width)); }
.contact__title, .contact__bar, .contact__description, .contact__map, .contact__card { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity 0.8s ease, transform 0.8s var(--ease-out); }
@media (min-width: 1025px) {
  .contact.active .contact__title, .contact.active .contact__bar, .contact.active .contact__description, .contact.active .contact__map, .contact.active .contact__card { opacity: 1; transform: translate3d(0, 0, 0); }
  .contact.active .contact__title, .contact.active .contact__bar, .contact.active .contact__description { transition-delay: 0.1s; }
  .contact.active .contact__map { transition-delay: 0.3s; }
  .contact.active .contact__card:nth-child(1) { transition-delay: 0.5s; }
  .contact.active .contact__card:nth-child(2) { transition-delay: 0.7s; }
}
@media (max-width: 1024px) {
  .contact__overlay { background: rgba(0, 0, 0, 0.26); }
  .contact__inner { padding: 0 calc(20 / var(--width) * var(--device-width)); flex-direction: row; }
  .contact__intro, .contact__location { width: 100%; height: 100%; flex: 0 0 100%; opacity: 0; visibility: hidden; transform: translateY(8%); transition: opacity 0.65s ease, visibility 0.65s ease, transform 0.8s var(--ease-out); pointer-events: none; }
  .contact__intro { padding-top: calc(154 / 748 * var(--vh)); flex-direction: column; align-items: stretch; justify-content: flex-start; }
  .contact__location { margin-top: 0; margin-left: -100%; padding: var(--header-height) 0 0; flex-direction: column; align-items: center; gap: 0; }
  .contact[data-step-index="0"] .contact__intro, .contact[data-step-index="1"] .contact__location { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
  .contact[data-step-index="1"] .contact__intro { transform: translateY(-8%); }
  .contact__title { font-size: calc(24 / var(--width) * var(--device-width)); }
  .contact__bar { display: none; }
  .contact__description { width: 100%; margin-top: calc(18 / var(--width) * var(--device-width)); font-size: calc(14 / var(--width) * var(--device-width)); line-height: 1.55; white-space: normal; }
  .contact__map { width: 100%; }
  .contact__cards { width: 100%; margin-top: calc(30 / var(--width) * var(--device-width)); gap: calc(8 / var(--width) * var(--device-width)); }
  .contact__card { min-height: calc(134 / var(--width) * var(--device-width)); padding: calc(16 / var(--width) * var(--device-width)) calc(18 / var(--width) * var(--device-width)); background: rgba(19, 16, 14, 0.32); }
  .contact__card_title, .contact__address { font-size: calc(14 / var(--width) * var(--device-width)); line-height: 1.65; }
  .contact__address { margin-top: calc(6 / var(--width) * var(--device-width)); }
  .contact__map_links { margin-top: calc(10 / var(--width) * var(--device-width)); gap: calc(16 / var(--width) * var(--device-width)); }
  .contact__map_links a, .contact__map_links img { width: calc(22 / var(--width) * var(--device-width)); height: calc(22 / var(--width) * var(--device-width)); }
  .contact.active .contact__title, .contact.active .contact__description, .contact.active .contact__map, .contact.active .contact__card { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* 섹션 네비게이션 점 (PC 우측) */
.fp-nav { position: fixed; z-index: 900; right: 24px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; }
.fp-nav button { width: 10px; height: 10px; border-radius: 50%; border: 1px solid rgba(255,255,255,.7); background: transparent; transition: background .3s, transform .3s; }
.fp-nav button.is-active { background: #fff; transform: scale(1.3); }
.fp-nav.is-dark button { border-color: rgba(0,18,65,.5); }
.fp-nav.is-dark button.is-active { background: var(--label-primary); }
@media (max-width: 1024px) { .fp-nav { display: none; } }
