body {
	margin: 0px;
	padding: 0px;
	position: absolute;
	height: 100%;
	width: 100%;
	background-size: cover;
	font-style: regular;
	font-family: "Myriad Pro", Myriad,"Helvetica Neue", Helvetica, Arial, sans-serif;
	background-color: #f0f0f1;
	/* by AI: iOS 스크롤 바운스로 주소창이 토글되면 뷰포트 높이가 변해 캔버스 리사이즈 번쩍임을 유발 → 스크롤/오버스크롤 차단 */
	overflow: hidden;
	overscroll-behavior: none;
	-webkit-overflow-scrolling: auto;
}

.webgl-content, #loadingBlock, #errorBrowserBlock {
	padding: 0px;
	position: absolute;
	/* by AI: 원본 보존 (아이폰 Safari에서 100vh는 '주소창 숨김 시' 높이 기준 → 주소창 표시/숨김마다 가시영역이 바뀌며 Unity 캔버스가 리사이즈되고 WebGL 드로잉버퍼 재할당으로 화면이 번쩍임)
	height: 100vh;
	width: 100vw; */
	height: 100vh;               /* by AI: 폴백 — dvh 미지원 구형 브라우저용 (아래 dvh가 지원되면 덮어씀) */
	width: 100vw;
	height: 100dvh;              /* by AI: 동적 뷰포트 높이 → 주소창 표시/숨김에 맞춰 부드럽게 갱신, 리사이즈 번쩍임 방지 (iOS Safari 15.4+) */
	width: 100dvw;
	background-color: #f0f0f1;
}

#gameContainer, canvas {
	position: absolute;
	height: 100%;
	width: 100%;
	background-color: #f0f0f1;
}

/* by AI: 가로 방향 안내 오버레이. 기본 숨김 → 터치기기(pointer:coarse)가 가로일 때만 표시.
   카카오 등 인앱 브라우저는 세로 잠금이 안 되므로 가로로 뜨면(최대화 포함) 게임을 덮고 세로 전환을 유도한다.
   pointer:coarse 조건으로 PC(가로 창)에는 뜨지 않게 함. */
#rotateOverlay { display: none; }

@media (orientation: landscape) and (pointer: coarse) {
	#rotateOverlay {
		display: flex;
		position: fixed;
		top: 0; left: 0; right: 0; bottom: 0;
		z-index: 99999;
		background-color: #0e0e12;
		color: #ffffff;
		align-items: center;
		justify-content: center;
		text-align: center;
		/* by AI: standalone 투명 상태바/노치 영역까지 안전하게 채움 */
		padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
	}
	#rotateOverlay .rotateIcon {
		font-size: 12vmin;
		margin-bottom: 3vmin;
		animation: rotateHint 1.6s ease-in-out infinite;
	}
	#rotateOverlay .rotateText {
		font-size: 4.2vmin;
		line-height: 1.5;
		font-weight: 600;
	}
	#rotateOverlay .rotateText span {
		display: inline-block;
		margin-top: 1.2vmin;
		font-size: 3vmin;
		font-weight: 400;
		opacity: 0.7;
	}
}

@keyframes rotateHint {
	0%, 100% { transform: rotate(0deg); }
	50%      { transform: rotate(-90deg); }
}

/*#fullScreenButton {
	height: 50px;
	width: 50px;
	position: absolute;
	z-index: 1;
	bottom: 5px;
	right: 5px;
	background-color: transparent;
	background-image: url("../img/fullScreen_on.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 30px 30px;
	border: none;
	cursor: pointer;
}*/

.subtitle {
	color: #1896a7;
	font-size: 2.3vh;
	padding-bottom: 2.3vh;
	padding-top: 10vh;
	display: block;
	height: 20vh;
	width: 60vw;
	margin: auto;
	text-align: center;
}

.logo {
	height: 25vh;
	width: auto;
	display: block;
	margin: auto;
	margin-top: 10vh;
}

#loadingBlock, #errorBrowserBlock {
}

#emptyBar {
	background: url("../img/progressEmpty.png") no-repeat right;
	float: right;
	width: 60%;
	height: 20%;
	display: inline-block;
}

#fullBar {
	background: url("../img/progressFull.png") no-repeat right;
	float: left;
	width: 40%;
	height: 20%;
	display: inline-block;
}

#progressBar, #warningBrowserBlock, #warningMobileBlock, #errorContent {
	height: 25vh;
	width: 40vw;
	margin: auto;
	text-align: center;
}

#progressBar {
	height: 8vh;
	color: #666666;
	font-size: 2vh;
	margin: auto;
	margin-bottom: 2vh;
	margin-top: 8vh;
}

#warningBrowserBlock, #warningMobileBlock, #errorContent {
	margin-top: 15vh;
	color: #666666;
	font-size: 2.3vh;
}

.browserIcons {
	display: inline-flex;
	margin-top: 2vh;
}

	.browserIcons a {
		width: 150px;
	}

#errorContent {
	font-size: 3vh;
	margin-top: 5vh;
}

.centered {
	height: 100%;
	max-width: 770px;
	margin-left: auto;
	margin-right: auto;
}


/* When aspect-ratio is smaller than 4/3*/

/*@media (max-aspect-ratio: 4/3){
	
	.webgl-content{
		-webkit-transform: translate(0%, 0%); transform: translate(0%, 0%);
		-webkit-box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.15);
		-moz-box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.15);
		box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.15);
	}
	
	.keepRatio{
		width:100%;
		padding-top: 75%;
		position: relative;
		top: 50%;
		transform: translateY(-50%);
	}

	.webgl-content,#loadingBlock,#errorBrowserBlock{
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		height:100%;
	}

	.logo{
		width:25vw;
		height:auto;
		margin-top:1vh;
	}
	
	.subtitle{
		font-size:2vw;
		height:10vw;
		padding-bottom:1vw;
		padding-top: 1vw;
	}

	.subtitle,#progressBar,#warningBrowserBlock,#warningMobileBlock,#errorContent{
		width:80vw;
	}
	
	#progressBar{
		height:6vw;
		margin-top: 2vw;
		font-size:3vw;
	}
	
	#emptyBar,#fullBar{
		height: 2vw; 
	}
	
	#warningBrowserBlock,#warningMobileBlock,#errorContent{
		margin-top:3vw;
		font-size:2vw;
	}
	
	.browserIcons{
		margin-top:1vw;
	}
	
	.browserIcons a{
		width:15vw;
	}
	
	.browserIcons a img{
		width:8vw;
	}
}*/


/* When aspect-ratio is bigger than 16/9*/

/*@media (min-aspect-ratio: 16/9){
	body{
		display:flex;
		flex-wrap:wrap;
		justify-content:space-between;
	}
	
	.keepRatio{
		width:178vh;
		height:100%;
		margin:0 auto;
	}
	
	.webgl-content,#gameContainer,canvas,#loadingBlock,#errorBrowserBlock{
		width: inherit;
	}
	
	.webgl-content{
	-webkit-box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.15);
		-moz-box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.15);
		box-shadow: 0px 0px 29px 0px rgba(0,0,0,0.15);
	}
	
	.subtitle,#progressBar,#warningBrowserBlock,#warningMobileBlock,#errorContent{
		width:100vh;
	}
}*/
