/* ── 스크롤 장면 (원본: 버튼을 누른 뒤 휠·터치로 장면이 이어진다. 문서는 한 화면에 고정) ──
   글자 크기: 최저 18px, 첫 장면 큰 제목만 최대 104px, 나머지 최대 50px (업종 규칙) */
.page-home{touch-action:none;overscroll-behavior:none}
.page-home .site-header{pointer-events:none}
.page-home .logo,.page-home .site-header__actions{pointer-events:auto}
.is-exp .hero__title,.is-exp .hero__tagline,.is-exp .cta,.is-exp .hero__phone,.is-exp .hero__lead{visibility:hidden!important;pointer-events:none}
.exp{display:none;position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
.is-exp .exp{display:block}
.exp>*{position:absolute}
.exp [data-s1],.exp [data-marker],.exp [data-pin],.exp [data-node],.exp [data-urban],.exp [data-intro-txt],.exp [data-photo-hint],.exp [data-msg1],.exp [data-msg2],.exp [data-room],.exp .exp-layer,.exp .exp-card,.exp .exp-end>*,.exp [data-end-foot]{opacity:0;visibility:hidden}
.exp-bg{inset:0;opacity:0;visibility:hidden;overflow:hidden}
.exp-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.exp-bg--map img{transform:scale(1.12);will-change:transform}
.exp-gridlines{position:absolute;inset:0;z-index:1;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:96px 96px}
.exp-bg--room img{transform:scale(1.06);will-change:transform}
.exp-bg--dark{background:radial-gradient(ellipse at 50% 40%,#fff 0%,#ececec 80%)}
.exp-bg--end{background:#fff}

/* 장면 1 */
.exp-s1{left:clamp(20px,9vw,140px);top:50%;transform:translateY(-50%);max-width:min(92vw,1100px)}
.exp-hero{font-family:"Do Hyeon",var(--hm-font-body);font-size:clamp(33px,5.7vw,85px);line-height:1.02;font-weight:400;white-space:pre-line;min-height:2.04em;text-shadow:0 2px 24px rgba(0,0,0,.45)}
.exp-sub{margin-top:24px;font-size:clamp(18px,1.6vw,22px);line-height:1.6;color:#fff;white-space:pre-line;max-width:30em;text-shadow:0 0 6px rgba(0,0,0,.85),0 1px 16px rgba(0,0,0,.8)}
.exp-ring{display:inline-block;flex:none;width:44px;height:44px;border:1px solid #fff;border-radius:50%;position:relative}
.exp-ring::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#fff}
.exp-marker{right:clamp(20px,10vw,200px);top:34%;display:flex;gap:16px;align-items:center;max-width:90vw}
.exp-marker__txt{display:grid;gap:2px;text-shadow:0 0 6px rgba(0,0,0,.85),0 1px 16px rgba(0,0,0,.8)}
.exp-marker__txt strong{font-size:22px;font-weight:700;letter-spacing:.04em}
.exp-marker__txt small{font-size:18px;color:#fff}

/* 장면 2 지도 */
.exp-pin{--k:0;left:56%;top:50%;width:0;height:0}
.exp-ring--big{position:absolute;left:0;top:0;width:96px;height:96px;margin:-48px 0 0 -48px;transform:scale(calc(.4 + var(--k)*.6));opacity:var(--k);border-width:2px}
.exp-pin__label{position:absolute;left:62px;top:-18px;white-space:nowrap;padding:6px 14px;background:#fff;color:#111;font-size:18px;font-weight:500;opacity:var(--k)}
.exp-block{padding:20px 26px;background:rgba(0,0,0,.58);border-left:2px solid #fff;display:grid;gap:10px}
.exp-block h2,.exp-layer{font-size:clamp(28px,3.4vw,44px);line-height:1.15;font-weight:400}
.exp-block p{font-size:clamp(18px,1.5vw,20px);line-height:1.6;color:#e2e2e2}
.exp-node{left:clamp(16px,5vw,80px);bottom:clamp(96px,14vh,150px);width:min(calc(100vw - 32px),560px)}
.exp-urban{right:clamp(16px,5vw,80px);top:calc(var(--header-h) + 24px);width:min(calc(100vw - 32px),420px)}

/* 장면 3 객실 */
.exp-intro{left:clamp(16px,5vw,80px);bottom:clamp(96px,14vh,150px);width:min(calc(100vw - 32px),520px);padding:20px 26px;background:rgba(0,0,0,.5);border-left:2px solid #fff;font-size:clamp(18px,1.6vw,22px);line-height:1.6}
.exp-rooms{left:50%;top:calc(50% + 28px);width:min(92vw,1300px);height:min(62vh,640px);transform:translate(-50%,-50%)}
.exp-room{position:absolute;inset:0;display:grid;grid-template-columns:minmax(260px,34%) 1fr;gap:clamp(24px,3vw,48px);align-items:center}
.exp-room__img{grid-column:2;grid-row:1;position:relative;display:block;width:100%;aspect-ratio:3/2;max-height:100%;padding:0;border:0;background:transparent;cursor:pointer;overflow:hidden;justify-self:end}
.exp-room__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .25s ease}
.exp-room__img img.is-fading{opacity:0}
.exp-room__count{position:absolute;right:0;bottom:0;padding:4px 12px;background:rgba(0,0,0,.7);font-size:18px}
.exp-room__txt{grid-column:1;grid-row:1;display:grid;gap:14px}
.exp-room__txt h3{font-size:clamp(36px,4vw,50px);line-height:1.1;font-weight:400}
.exp-room__sub{font-size:20px;color:#555}
.exp-room__txt ul{display:grid;gap:6px;font-size:18px}
.exp-room__txt li,.exp-card li{padding-left:18px;position:relative}
.exp-room__txt li::before,.exp-card li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;background:#000}
.exp-photo-hint{left:50%;bottom:clamp(24px,5vh,56px);transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);text-align:center;font-size:18px;color:#555}

/* 장면 5 편의시설 카드 */
.exp-ui{inset:0}
.exp-ui>*{position:absolute}
.exp-layer{left:clamp(20px,6vw,100px);top:calc(var(--header-h) + 28px);font-size:clamp(28px,3.4vw,50px)}
.exp-cards{left:50%;top:calc(50% + 50px);transform:translate(-50%,-50%);width:min(92vw,1424px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.exp-card{color:#000;padding:24px;background:rgba(242,242,242,.95);border:1px solid var(--hm-color-border);display:grid;gap:8px;align-content:start}
.exp-card h3{font-size:24px;line-height:1.2;font-weight:700;letter-spacing:.02em}
.exp-card p{font-size:18px;color:#555}
.exp-card ul{display:grid;gap:4px;margin-top:6px;font-size:18px}
@media (max-width:1099px){.exp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){
  .exp-cards{grid-template-columns:minmax(0,1fr);gap:8px;top:calc(var(--header-h) + 76px);transform:translateX(-50%)}
  .exp-card{padding:10px 16px;gap:0;line-height:1.35}
  .exp-card ul{margin-top:2px;gap:0}
  .exp-layer{top:calc(var(--header-h) + 14px);font-size:28px}
}

/* 장면 6 실내 + 두 줄 문구 */
.exp-msg{left:50%;top:calc(50% - 10px);transform:translate(-50%,-50%);width:min(92vw,900px);text-align:center;font-size:clamp(26px,3.4vw,44px);line-height:1.35;white-space:pre-line;padding:18px 28px;background:rgba(0,0,0,.6);text-shadow:0 1px 8px rgba(0,0,0,.6)}

/* 장면 7 엔딩 */
.exp-end{left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,720px);text-align:center;display:grid;gap:14px;justify-items:center}
.exp-end>*{position:static}
.exp-end__brand{font-size:clamp(34px,5vw,50px);letter-spacing:.2em;padding-left:.2em;line-height:1.2}
.exp-end__addr{font-style:normal;font-size:20px;color:#555}
.exp-end__tel{font-size:20px}
.exp-end__tel a{display:inline-block;padding:8px 2px;border-bottom:1px solid rgba(0,0,0,.4)}
.exp-end__tel a:hover{color:var(--hm-color-accent)}
.exp-end__btns{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;justify-content:center;pointer-events:none}
.exp-end__btns.is-on{pointer-events:auto}
.exp-end__btns .btn{min-width:220px}

/* 장면 사이 전환(원본 cubesTransition): 칸이 차올랐다가 걷힌다 */
.exp-cubes{inset:0;display:none;grid-template-columns:repeat(var(--cols,14),1fr);grid-template-rows:repeat(var(--rows,8),1fr)}
.exp-cubes span{background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);opacity:0}
.exp-end__tel span{white-space:nowrap}
.exp-skip__short{display:none}
@media (max-width:559px){.exp-end__sep{display:none}.exp-end__tel{display:grid;gap:0}}
.exp-hint{left:50%;bottom:clamp(88px,14vh,140px);transform:translateX(-50%);opacity:0;font-size:18px;letter-spacing:.14em;color:#fff;white-space:nowrap;text-shadow:0 0 6px rgba(0,0,0,.85),0 1px 16px rgba(0,0,0,.8);animation:expHint 1.8s ease-in-out infinite}
@keyframes expHint{0%,100%{translate:0 0}50%{translate:0 8px}}
.exp-skip{right:clamp(16px,3vw,40px);bottom:clamp(16px,4vh,32px);display:flex;align-items:center;min-height:48px;padding:0 18px;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.45);font-size:18px;opacity:0;pointer-events:none;transition:opacity .4s ease,background-color .2s ease,color .2s ease}
.exp-skip.is-on{opacity:1;pointer-events:auto}
.exp-skip:hover{background:#fff;color:#111}

@media (max-width:859px){
  .exp-rooms{top:calc(var(--header-h) + 8px);transform:translateX(-50%);height:calc(100dvh - var(--header-h) - 150px)}
  .exp-room{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;align-items:start;gap:16px}
  .exp-room__img{grid-column:1;grid-row:1;justify-self:stretch}
  .exp-room__txt{grid-column:1;grid-row:2;gap:8px}
  .exp-room__txt h3{font-size:34px}
  .exp-marker{top:calc(var(--header-h) + 8px);bottom:auto;right:16px;left:16px}
  .exp-pin{left:30%}
  .exp-skip{top:31px;bottom:auto;right:12px;min-height:44px;min-width:44px;padding:0 12px;justify-content:center}
  .exp-skip__long{display:none}
  .exp-skip__short{display:inline}
  .exp-photo-hint{bottom:28px}
  .exp-hint{bottom:56px}
}
@media (prefers-reduced-motion:reduce){.exp-hint{animation:none}}

/* 흰 바탕 장면(객실·편의시설·엔딩)의 글자는 검정 — 사진 위 글자는 흰색 유지 */
.exp-layer,.exp-room__txt,.exp-end{color:#000}
.exp-layer{text-shadow:none}

/* 흰 배경 장면에서는 고정 머리글 로고·바로가기 버튼을 검정 계열로 */
.page-home.is-light .logo{color:#000;text-shadow:none}
.page-home.is-light .logo:hover{color:#444}
.page-home.is-light .exp-skip{color:#000;border-color:rgba(0,0,0,.5);background:rgba(255,255,255,.7)}
.page-home.is-light .exp-skip:hover{background:#000;color:#fff}

/* 객실 설명 칸 다듬기: 번호 표기 + 큰 이름 + 가는 선으로 나뉜 항목 */
.exp-rooms{counter-reset:room}
.exp-room{counter-increment:room}
.exp-room__txt{gap:0;align-content:center;padding-right:clamp(0px,2vw,32px)}
.exp-room__txt::before{content:"ROOM 0" counter(room);display:flex;align-items:center;gap:14px;font-size:18px;letter-spacing:.28em;color:#555;margin-bottom:18px}
.exp-room__txt::after{content:none}
.exp-room__txt h3{font-size:clamp(44px,4.6vw,50px);line-height:1;font-weight:400;letter-spacing:.02em}
.exp-room__sub{margin-top:12px;font-size:20px;color:#555}
.exp-room__txt ul{margin-top:26px;gap:0;border-bottom:1px solid var(--hm-color-border)}
.exp-room__txt li{padding:14px 0;border-top:1px solid var(--hm-color-border);font-size:18px;line-height:1.4}
.exp-room__txt li:first-child{font-size:20px}
.exp-room__txt li::before{display:none}
.exp-room__txt li,.exp-card li{padding-left:0}
.exp-card li{padding-left:18px}
@media (max-width:859px){
  .exp-room__txt::before{margin-bottom:8px}
  .exp-room__txt ul{margin-top:14px}
  .exp-room__txt li{padding:8px 0}
  .exp-room__txt h3{font-size:40px}
}

/* 객실 설명 칸 전체 볼드 해제 */
.exp-room__txt,.exp-room__txt *{font-weight:400!important;font-synthesis:none}

/* 검정 배경 카드 제거: 지도·객실 소개·실내 문구는 배경 없이 글자 그림자로 읽히게 */
.exp-block,.exp-intro,.exp-msg{background:none!important;color:#fff;text-shadow:0 0 6px rgba(0,0,0,.85),0 1px 18px rgba(0,0,0,.8)}
.exp-block p{color:#fff}

/* 편의시설 카드 사진 */
.exp-card{padding:0 0 22px;overflow:hidden}
.exp-card>*:not(.exp-card__img){margin-left:24px;margin-right:24px}
.exp-card__img{display:block;width:100%;height:clamp(80px,13vh,170px);object-fit:cover;margin-bottom:12px}
@media (max-width:599px){.exp-card__img{display:none}.exp-card{padding:10px 0}.exp-card>*:not(.exp-card__img){margin-left:16px;margin-right:16px}}

/* 마지막 장면 푸터 정보 (주소·연락처는 여기로 모음) */
.exp-end__addr,.exp-end__tel{display:none}
.exp-foot{left:50%;bottom:clamp(20px,5vh,48px);transform:translateX(-50%);width:min(92vw,900px);text-align:center;display:grid;gap:2px;font-size:18px;line-height:1.5;color:#555;border-top:1px solid var(--hm-color-border);padding-top:14px}
.exp-foot p{margin:0}
.exp-foot a{display:inline-block;padding:8px 2px;color:#000;border-bottom:1px solid rgba(0,0,0,.35)}
.exp-foot a:hover{color:#444}
.exp-end.is-live~.exp-foot,.exp-foot a{pointer-events:auto}
@media (max-width:859px){.exp-foot{bottom:44px;font-size:18px;gap:0}}

/* 볼드 해제: 모든 요소 굵기 400, 카드 목록은 살짝 옅게 */
*,*::before,*::after{font-weight:400!important;font-synthesis:none}
.exp-card ul,.exp-card li{color:#444;-webkit-font-smoothing:antialiased}

/* 객실 소개 문구: 흰 배경에서 검정으로 */
.exp-intro{color:#000!important;text-shadow:none!important}

/* 굵어 보이는 글자 가늘게: 글자 가장자리를 배경색 선으로 살짝 깎는다(폰트는 그대로) */
.exp-card h3,.exp-card p,.exp-card li{-webkit-text-stroke:.7px #f2f2f2;paint-order:stroke fill}
.exp-room__txt,.exp-room__txt *{-webkit-text-stroke:.6px #f7f7f7;paint-order:stroke fill}
