*{
	box-sizing:border-box;
	margin:0;
	padding:0
}

body{
	font-family:'Roboto','Helvetica Neue',Helvetica,Arial,sans-serif;
	background:#fff;
	color:#1a1a1a;
	overflow: auto;
	height: 100vh;
	width: 100vw;
	font-weight: 100
}

.slide{
	position:fixed;
	inset:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;	
	background:#fff;	
	opacity:0;
	pointer-events:none;	
	z-index:1;	
	padding:9vh 4vw 12vh;
}
.slide.active{
	opacity:1;
	pointer-events:auto;
	z-index:10
}

/* ~2x scaled headline type */
.slide-phrase{
	font-size:clamp(32px,5.2vw,72px);
	font-weight:100;
	letter-spacing:0.04em;
	line-height:1.15;
	text-align:center;
	white-space:normal;
	padding:0 24px;
	margin-bottom:14px;
	opacity:0;
	transition:opacity 1s ease;
	max-width:95vw;
}
.slide-phrase.show{
	opacity:1
}
 
.slide-phrase .logo path.b{
	fill: #d8d9da;
}
.slide-phrase .logo path.t{
	fill: #040707;
}


.slide-phrase-sub{
	font-size:clamp(32px,5.2vw,72px);
	font-weight:100;
	letter-spacing:0.04em;
	line-height:1.15;
	text-align:center;
	white-space:normal;
	padding:0 24px;
	margin-bottom:42px;
	color:#1a1a1a;
	opacity:0;
	transition:opacity 1s ease;
	max-width:95vw;
}
.slide-phrase-sub.show{opacity:1}

.slide-image:not(.customers){
	max-width:min(85vw,900px);
	max-height:30vh;
	width:auto;
	height:auto;
	display:block;
}
.slide-image{
	opacity:0;
	transition:opacity 1s ease;
}
.slide-image.mark{
	max-width:min(60vw,640px);
	max-height:20vh;
}
.slide-image.show{opacity:1}

.slide.fading-out{
	transition:opacity 0.6s ease;
	opacity:0;
}

.slide .customers {
	max-width: 60vw;
}

.slide .customers img {
	max-height: 30px;
}

.slide .customers img.p45 {
	max-height: 45px;
}

/* Progress bar */
.progress{
	position:fixed;
	bottom:0;
	left:0;
	height:2px;
	background:#F5A623;
	z-index:100;
	transition:width 0.1s linear;
	width:0;
}

/* Persistent controls */

.ctrl-cnt {
	position:fixed;
	bottom:22px;
	left:50%;
	transform:translateX(-50%);
	z-index:200;
	padding: 10px;
}
.ctrl-cnt .ctrl-replay, 
.ctrl-cnt .ctrl-pause, 
.ctrl-cnt .ctrl-prev, 
.ctrl-cnt .ctrl-next {
	width: 50px;
	height: 42px;
	font-family:'Roboto',sans-serif;	
	font-size:13px;
	font-weight:400;
	text-transform:uppercase;
	letter-spacing:0.12em;	
	color:#999;
	background:none;
	border:none;
	cursor:pointer;
	transition:color 0.2s,border-color 0.2s;

}
.ctrl-cnt .ctrl-replay:hover, 
.ctrl-cnt .ctrl-pause:hover, 
.ctrl-cnt .ctrl-prev:hover, 
.ctrl-cnt .ctrl-next:hover {
	color:#1a1a1a;
	/* border-color:#999; */
}

.ctrl-contact{
	position:fixed;
	bottom:22px;
	right:28px;
	z-index:200;	
	font-family:'Roboto',sans-serif;	
	font-size:13px;
	font-weight:400;
	text-transform:uppercase;
	letter-spacing:0.12em;	
	color:#999;
	background:none;
	border:1px solid #ddd;	
	padding:9px 18px;
	cursor:pointer;
	transition:color 0.2s,border-color 0.2s;	
	text-decoration:none;

}
.ctrl-contact:hover{
	color:#1a1a1a;
	border-color:#999;
}

/* Contact overlay */
.contact-overlay{
	position:fixed;
	inset:0;
	overflow: auto;
	background:rgba(255,255,255,1);

	z-index:500;
	opacity:0;
	pointer-events:none;
	transition:opacity 0.3s ease;	
}
.contact-overlay.open{
	opacity:1;
	pointer-events:auto;
}
.contact-card{
	text-align:center;
	max-width:800px;
	padding:48px;
}
.contact-card h2{
	font-size:32px;
	font-weight:300;
	letter-spacing:0.06em;
	margin-bottom:10px;
}
.contact-card .company{
	font-size:13px;
	text-transform:uppercase;
	letter-spacing:0.12em;
	color:#888;
	margin-bottom:36px;
	font-weight:400;
}
.contact-card .uk-card{
	text-align: left;
}
.contact-card .detail{
	font-size:18px;
	font-weight:300;
	line-height:1.9;
	color:#444;
};
.contact-card .detail a{
	color:#444;
	text-decoration:none;
	border-bottom:1px solid #ddd;
}
.contact-card .detail a:hover{
	color:#1a1a1a;
	border-color:#999;
}
.contact-close, .contact-send{
	margin-top:34px;
	font-family:'Roboto',sans-serif;
	font-size:12px;
	font-weight:400;
	text-transform:uppercase;
	letter-spacing:0.12em;
	color:#999;
	background:none;
	border:1px solid #ddd;
	padding:9px 18px;
	cursor:pointer;
	transition:color 0.2s,border-color 0.2s;
}
.contact-send{
	color:#1e87f0;
	border:1px solid #1e87f0;
}

.contact-close:hover{
	color:#1a1a1a;
	border-color:#999;
}
.contact-send:hover{
	color:#0f7ae5;
	border-color:#0f7ae5;
}


/* Persistent tagline — quiet horizon, not a second headline */
.persistent-tagline{
	position:fixed;
	top:24px;
	left:50%;
	transform:translateX(-50%);	
	font-family:'Roboto',sans-serif;	
	font-size:clamp(22px,3.4vw,48px);	
	font-weight:100;	
	letter-spacing:0.05em;	
	color:rgba(0,0,0,0.13);	
	z-index:15;	
	white-space:nowrap;	
	pointer-events:none;	
}

/* Footer */
.footer{
	position:fixed;
	bottom:6px;
	left:50%;
	transform:translateX(-50%);	
	font-family:'Roboto',sans-serif;	
	font-size:11px;
	text-transform:uppercase;
	letter-spacing:0.12em;
	color:#bbb;
	z-index:100;	
	white-space:nowrap;
	font-weight:400;
}

/* Mobile */
@media (max-width:768px){
	.slide{padding:8vh 4vw 14vh}

	.slide-phrase,
	.slide-phrase-sub{
		font-size:clamp(22px,6.4vw,40px);
		padding:0 12px;
		margin-bottom:10px;
		line-height:1.2;
	}
	.slide-phrase-sub{margin-bottom:24px}
	.slide-image{
		max-width:90vw;
		max-height:24vh;
	}
	.slide-image.mark{
		max-width:75vw;
		max-height:16vh;
	}
	.slide .customers {
		max-width: 75vw;
		max-height: 35vh;
	}
	.ctrl-contact {
		bottom:40px;
		font-size:11px;
		padding:6px 11px;
	}

	.persistent-tagline{font-size:clamp(15px,4vw,28px);white-space:normal;text-align:center;width:90vw;top:14px}
	.footer{font-size:9px;letter-spacing:0.08em;white-space:normal;text-align:center;width:90vw}
	.contact-card{
		padding:28px;
		max-width:100vw}
	.contact-card h2{font-size:22px}
	.contact-card .company{font-size:11px;margin-bottom:22px}
	.contact-card .detail{font-size:14px}
}