We have a guest, Jas “Fizzi” Laferriere (Twitter @Fizzi36, Email: Fizzi36@gmail.com), who put in lots of interesting research into input lag.
EDIT: I have written a short follow-up to this article with recommendations about monitors and devices check it out here: Reddit Post
Table of Contents
1. Introduction
2. Console “Lag”
3. Synchronization by Sound
4. The Test Method
5. Results
6. Result Analysis
7. Screen Quality Perception
8. Conclusion
Introduction
CRTs oh how we love thee…
Yes we all know that CRTs have the lowest input lag of any display ever made. The problem with this longstanding fact is that any non-CRT screen is shunned by smashers as if they might contract the bubonic plague instantly upon use.
There has been talk of LCD monitors being used at upcoming international events such as Evo. This talk, as expected, has elicited a negative reaction from many smashers. The primary goal of this article is to outline just how close these monitors can get to the response time of a CRT, what the effect of lag is on gameplay, and to dispel some myths people have about LCD monitors.
In order to determine if a particular monitor lags, people will often try the subjective strategy. That is, they ask a smasher to play on a monitor and comment on how it feels. This strategy usually results in comments such as:
- “Oh it feels okay”
- “Mmm… I’m not sure, I think something might be slightly off.”
- “Yep, I’m pretty sure this thing lags.”
Fantastic responses! We have determined nothing. One major problem here is that smashers tend to placebo hard as soon as something that isn’t 2 feet in depth is placed in front of them. The other major problem is that humans are actually really bad at determining small fraction of a second differences.
With that said, it makes sense to attempt an objective strategy. With some help from Mofo, I developed a method for objectively testing lag on any type of screen. One of the beautiful things about this method is that it actually uses melee itself as part of the test. This means that we can say for a fact that every single possible source of lag has been accounted for.
Console “Lag”
As players, the lag we are sensitive to is the time between when an input is pressed to the time when the game’s reaction to that input appears on screen. In simpler words, lag is when stuff happens later than it should.
The game itself, however, cannot physically react to inputs immediately when they are received. This is because the game operates in discrete frames. For example, a character’s move can only ever begin on a frame, it cannot begin at any point in between. That said, players can and do press buttons in the time between frames. This means that if the A button is pushed to jab, the game will only begin the jab startup in a variable amount of time between 0 ms and 16.66 ms (length of one frame) – it will not start the jab immediately upon receiving the input.
Image 1: Comparison of different delays with identical frame output
The way this reality interacts with button combinations is rather interesting. It means that even if, on two separate occasions, the same two buttons are pressed with precisely the same delay in between, the same result is not guaranteed.
Image 2: Example of same inputs producing a different output
This means that even on a lagless monitor, there are two possible reasons why players are capable of being consistently technical.
- They understand the margin of error and press inputs in consequence to this. In the above graphic this would mean adding some time between button presses to guarantee the timing is always met
- The brain naturally synchronizes to the displayed refresh rate of the monitor.
The point to make here is that, even on a monitor that is lagless, lag still exists in some way. A fully lagless experience is impossible. One way or another, players are capable of dealing with some lag. Lag induced by a laggy screen, however, is an added constant on top of this variable lag – the effect of which will be explored later.
Synchronization by Sound
The original concept for determining the latency of a monitor was to somehow detect the time difference between when an input is pressed to when a particular frame shows up on screen. Unfortunately, this approach is iffy at best for the reasons described in the previous section. The result of such a test would be (true lag) + (time until next frame) where time until next frame is between 0 and 16.66 ms. Luckily, there is another signal that is separate from the video and yet is related to it time wise – sound.
Let’s consider Captain Falcon standing on FD about to falcon punch. When the b button is registered by the console, the console will send the video frame information consistent with displaying a falcon punch as well as the sound information containing the famous words “FALCON PUNCH!”. The sound and the video will always be sent out by the console at the same times respective to each other, irrespective of where the input landed in the subframe region.
When the video signal reaches the display, it is first processed, and then displayed. This processing time is effectively the lag of the monitor – it will cause the two signals, audio and video, to appear desynchronized. It is the amount of time of this desynchronization that will be measured to determine lag.
The Test Method
When a player pauses a match in melee, two events happen nearly simultaneously: a white decal surrounds the screen and a high pitched sound is played, both denoting the pause has happened. These are both very strong and easy to recognize signals.
The testing procedure is as follows:
- The audio output of the console is hooked up to an Arduino. The arduino lights an LED upon the detection of an audio signal. This effectively turns an audible signal (sound) into a visible signal (light).
- The video output of the console is plugged into the monitor.
- A high speed camera records the pause event.
- The high speed footage is analyzed and the time difference between when the LED lit up and the pause decal first became visible on screen is recorded.
When this test is executed on a CRT, the gold standard for response time, a time difference is obtained from step 4. This time difference is the expected value required if another system is to be called truly lagless.
When this test is executed on a laggy monitor, the time difference will be greater than what was seen on the CRT. The audio output will be detected at the same time but the pause decal will show up at some time later. The lag of this TV can then be calculated by the formula:
The gif below shows a CRT and a laggy LCD in a head to head comparison. The events were recorded individually and then combined. To best illustrate the comparison, the LED on time is set to 0 ms in both cases.
Image 3: Example test procedure – CRT vs Laggy TV
Results
There are a few sources of error in the testing method. In order to improve the accuracy of the results, the test was executed multiple times on each monitor and the results averaged. That said, there is likely still about plus or minus 1 ms of error for the LCD results.
CRTs have less error associated with their measurement because determining when the video signal has appeared is less subjective. On an LCD, as can be seen in the gif above, the decal shows up in an incomplete fashion before the signal is accepted. This is done to provide a more fair comparison to the CRT – on which the top part of the decal is instantly fully clear.
Here are the averaged results for each monitor. (The BenQ RL2455HM monitor is the official MLG monitor)
Table 1: Comparison of lag on CRT and LCD TV’s
Graph 1: Graphical Comparison of lag via milliseconds (ms)
If you have ever been introduced to the website www.displaylag.com, you might wonder how it is possible for the results to be so low with the RL2455HM.
The RL2455HM monitor displays a frame from top to bottom. This method of showing a frame is identical to how a CRT displays a frame. Display lag database uses the average latency across three zones (top, center, and bottom). Using this metric, even a CRT would not have zero lag – it would have 8.3 ms of lag. This is because it takes a full 16.66 ms to display the entire frame from top to bottom. In this particular case and in many others, when comparing to a CRT it is more fair to subtract about 8 ms from the number reported by Display Lag.
Because CRTs actually take time to display a whole frame, it is technically possible for a flat screen monitor to appear faster than a CRT. Given a small initial delay such as the RL2455HM + LGP and a faster refresh rate, it may be possible for the center of a frame and certainly the bottom of a frame to appear on screen earlier than it otherwise would on a CRT.
Result Analysis
Okay so using the RL2455HM + LGP setup induces about 2.86 ms of lag, but what does this actually mean to the player?
It is important to make a distinction between events that are affected by monitor lag and events that are not. Events that are executed via muscle memory timing, pressing one button at the correct timing after another, such as a wavedash are very easy to execute even on very laggy monitors because they do not utilize much visual prompting.
A good example of an event that would be affected by monitor lag is power shielding a laser, a 2 frame window.
Let’s consider a person who can successfully power shield a laser 95% of the time. Assuming that human reaction follows the gaussian pattern, a gaussian response that could meet this success rate has a mean at 1 frame before the laser hits and a variance of about 72.25 (ms). Introducing the lag of the monitor and assuming that the distribution is shifted over by an amount equal to the lag, the probability of a successful power shield only drops to 93.7%.
Image 4: Gaussian Distribution of Power Shielding with respect to Lag
Now a 95% success rate on a power shield is rather good. Let’s assume the person is still good but not super human – they have a lower success rate of 50% caused by an increase in variance. Given the same amount of lag, their success rate only drops to 49.7%. The takeaway from this is that given a higher variance, larger variation in a person’s ability to respond in a given amount of time, the effect of monitor latency diminishes.
It is also possible for the mean to not be perfectly centered along the target area. For example, consider a person has the same variance as described in the first example – a variance which signifies the person is quite proficient at hitting a 2 frame window. Now consider that this person tends to power shield late, late enough that their success rate is only 62.3% on a lagless system. With the lag added, this person’s success rate would drop to 49.1%. This scenario is just about the worst case given this kind of variance. The best case scenario is when the lag actually helps the player. If the same person had a tendency to hit early instead, their success rate would actually increase from 62.3% to 74.2%.
Notice that in the example where the percent of success dropped from 62.3% to 49.1%, the person was not extremely proficient at hitting the window to begin with. In contrast, when the success rate was 95% to start, the percent of success dropped a very small amount. A person proficient at hitting a 1 or 2 frame window either has a mean that is very close to centered on that target window, or has a very small variance. That said, there is a limit to how small a human’s variance can be. If a person has a 95%+ success rate hitting a 1 or 2 frame window, it is likely safe to assume it is caused by a well placed mean. Hence, players that can hit these timings very often will be very minimally affected by the added latency.
Now let’s talk about if the lag was a bit worse. Let’s consider a monitor that is slow by one full frame, 16.66 ms. In the first example with the 95% success rate person, their rate on this monitor would drop all the way to 50%. That is, 93.7% on a 2.86 ms monitor, 50% on a 16.66 ms monitor. This highlights the fact that there is a major difference between a monitor that is pretty good and one that is very good. Most monitors that people have tried would likely fall under the “pretty good” category at best. Do not allow past experiences with other monitors to influence your conception of these “very good” monitors.
All the calculations in this section were made under the assumption that the human does not adapt to the new lag. It may also be possible that the brain notices the slight offset and corrects to some degree. If the brain does do some correction, then the difference would be even smaller than described.
Screen Quality Perception
The topic of this section is factors other than lag which might cause a person to think negatively about a particularly monitor.
By the reasoning outlined in the previous section, minor lag does not appear to be a major factor for player performance. That said, I ask the reader, have you ever heard someone claim that some CRTs lag? Why do people think this? In my test results, CRT 2 is a 14 inch CRT. I have heard many negative comments about CRT 2. People just don’t seem to like it, often claiming that it lags. As shown by the results, the lag difference is essentially non-existent – it is well within the error of the test. So then, why do people not like it?
My theory is that people are also sensitive to image distortion. CRT 2 has a very clear image, but being a small monitor, it has a rather rounded screen. This rounded screen causes the image to appear somewhat distorted. This is very minor and difficult to notice but it may be the cause for the hate it has received.
Regarding CRTs, in my previous experience I tend to find that people like the larger, flatter screens.
The takeaway here is that lag is not the only problem with a screen. When an image looks different than another, it can throw a player off. This precise issue leads to one of the most powerful arguments for having a pro-LCD position. All the screens are the same. No more swapping back and forth between small CRTs and large CRTs. No more old, ugly, discolored CRTs. No more terrible terrible audio. The same image – same experience – every time.
It is true that very fast monitors such as the RL2455HM have some problems. Periods of fast movement can lead to minor ghosting. But overall the image quality is extremely good. After a few hours of using one, I fully expect a player to be used to it and be capable of ignoring any of its image defects.
Conclusion
We have seen that major tournament hosts and companies are reluctant to use CRTs. Maybe having an assortment of unique, archaic TVs gives their venue an unprofessional look. Maybe obtaining CRTs from the community is a hassle. Regardless of the reason, it is certainly a point which weakens these entities’ desire to host smash events.
That said, maybe they will accept our CRTs this year. But what about the next? And then the year after that? I expect if you are reading this you have a desire to see smash grow. CRTs are dead technology. Can we not adapt to changing technology? What kind of image does that portray to people that are not part of our scene?
There’s no game quite like melee. The fluidity of movement and execution skill cap enable a brilliant form of art we’ve come to worship. The love is real, the potential for growth is now.
Everyone has noticed the growth which our exposure at Evo provided. These big events are paramount to our continued growth. If dealing with an extremely small amount of delay helps aid that cause, how can you not support it? This small amount of lag, by the way, is bound to reduce even further as the technology improves. Maybe our exposure at these big events and our willingness to try new technology will encourage companies like BenQ or Asus to come out with new monitors that are even better for our use – monitors with support for native component input, or even maybe composite inputs.
To those that own these set ups or plan on getting one, I implore that you configure them properly and invite people to try them. For those that haven’t tried them, I encourage you to give it a fair chance. Who knows? You may find that these convenient monitors are not so bad after all.
Special thanks to:
Julien “Mofo” Heller – For helping me come up with the original concept for the test
Alex Jebailey – For suggesting the AverMedia LGP to the melee community and as such getting me interested in testing it
Tony “Aisight” Cheng – For doing the original monitor to monitor comparisons and being supportive of HD monitors
Sheridan and Tafokints – For the comments and feedback
Links
Example probability calculation: WolframAlpha
C&E Component to HDMI Converter: Amazon
AverMedia LGP: Amazon
As long as it doesn’t lag any more than a CRT there is literally no reason not to make the switch.
The main issue I see here is BenQs are in a class of their own and not the most affordable. I think most smashers primarily want to avoid developing a norm of people bringing their household LCDs to smashfests and tournaments. But for events like EVO and MLG, there’s no reason not to use the EVO monitors.
This is a good point. This article by no means claims that “all LCDs are good to go!”. I prefer the motto: “use LCDs… with caution”.
If you ever get a chance, do you think you could test out the VX238H (that’s what I use to stream smashfests, want to make sure it’s comparable to the VH238H) and this product (http://www.amazon.com/Etekcity%C2%AE-Composite-Video-Audio-Converter/dp/B008FO7PQA/ref=cm_cd_ql_qh_dp_t). I want to use the HDMI-to-composite converter so that I can use a CRT with the elgato without having to split the signal for tournaments. So my tournament setup would be wii -> component 480p -> elgato -> hdmi -> hdmi to composite 480i converter -> CRT. I was hoping that since the BMI 480p-to-480i conversion was lagless, this converter would be lagless as well, but the first is Analog-in-analog-out, whereas my solution is digital-in-analog-out, and I was worried that there might be significant digital-to-analog conversion lag.
Heya, great article!
I was just wondering if you could go a bit more into detail regarding “the RL2455HM + LGP setup”, explaining more precise what you are using.
Love,
Lolex.
This is a great article, but there is one thing that concerns me.
You say that there are 2 reasons why people can be consistently technical: allowing for a margin of error or synchronizing with the sampling rate. You’re forgetting the possibility that people can be more precise with their inputs.
In your example, your inputs are, let’s say, 2.3 frames apart. This means that, with a random unsynchronized starting time, there is a 30% chance they will be 3 frames apart and a 70% chance they will be 2 frames apart. If you can input the buttons 3.000 frames apart, you can get the 3-frame window 100.0% of the time regardless of synchronization.
True. Once again we could get into a human button press variance discussion but overall I’d say you’re right.
That said that particular part is not overly important to the main point of the article. It’s more of an interesting discussion about another form of lag people rarely talk about it.
Would this work with an Elgato Game Capture HD? It haves analog inputs and HDMI output. I used it with my Evo Monitor and it was great, but I’m not the most technical guy…
No way for me to know how much lag is induced with that particular device without getting one myself.
Any way to test it out myself?
Can’t reply to your other comment for some reason.
There’s no simple way that I know of at the moment.
We have some potential work ahead of us.
Near future – Find a way to obtain and test devices and monitors ourselves and build up a database similar to displaylag.com.
Farther future – Develop a easy to use, cheap device we can use to test a 480p output out of component cables.
Was there any lag difference from using composite (480i) and component (480p)?
also thanks for your reply 🙂 I love what you guys are doing for the community.
Didn’t test the difference between the two signal outputs. It’s doable but in both cases it still has to go through the LGP.
Is .17 frames of lag perceptible to humans?
When numbers get that low it becomes hard to answer that question. Let’s pick a slightly higher number for discussion, like 0.5 frames or so.
At this value, a human likely wouldn’t be able to directly notice the lag but if they kept track of stats such as power shield success percentage, they might notice it is lower than usual.
That’s why it’s important that the numbers be as low as possible, so we can theorize that a person’s ability to hit strict timings is impacted to such a small degree that it does not affect play.
Could you please describe the setup in better detail? Where does the sound come out of?
I would hope the sound cables are always connected to the same device, which MUST NOT be any TV. The sound and video are processed separately, and it is not unheard of monitors which add up a noticeable lag to the sound (ie. some HD surround effect processing, Dolby decoding, etc.).
Assuming you get the sound out of the TV, here are some bad consequences,
You would have to account for an additional delay in the sound. In other words, you are assuming the delay of the sound is 0, when in fact it is (sound processing time of device). What is worse, by using the C&E Component, there is necessarily a huge delay introduced by the fact you convert from analog to digital (A->D time); in my eyes it seems highly unlikely this device doesn’t introduce any skew, having tested VGA boxes back in the day.
The real delay we want to see is (press time) -> (video output). You have shown (audio output) -> (video output); if the device where the audio comes out of is the TV, you have to add (press time) -> (audio output).
In case it’s not the TV, then we can assume that to be constant, even though still your conclusions concerning the power shield are ruling this out.
Hi Shiroi,
Thanks for the detailed response.
I’ve heard this concern a few times already… It’s surprising to me because I thought I made it clear enough in the article with step 1 of the testing procedure – “The audio output of the console is hooked up to an Arduino. The arduino lights an LED upon the detection of an audio signal. This effectively turns an audible signal (sound) into a visible signal (light).”
This means that the Wii’s audio output is always directly connected to the Arduino. It does not go through any device prior. No C&E, no LGP, no TV, no nothing. Therefore the LED turn on time will always be constant (assuming little to no variation in physical LED start up time and a fast enough processor [16 MHz]).
We are not looking for (press time) -> (video output). I explained this in the “Synchronization by Sound” section. This method gives you an undesired variable in the calculation. What we are really looking for is (console reaction to press) -> (video output) which, by using a CRT as a baseline, is the result of the test.
It’s important to keep in mind that this is a relative test, not an absolute test. People seem to get tripped up by this. The numbers shown are the the amount of additional lag each monitor has compared to a CRT, not the amount of lag it has by itself. We just assume that a CRT has just about no lag.
One thing about press-> reaction, it tells you how many frames of input delay are natural in the game.
Street fighter has 4 frames naturally, for example.
Knowing that the game automatically takes time to process inputs should calm down the “0f lag or fail” naysayers
I would recommend looking at the GIF I provided a few times over. It should make it really clear how the calculation works given what I just mentioned about how the sound gets converted to the LED turning on.
The LED turns on at the same time on both systems but the video response of the LCD is clearly much slower than the video response of the CRT. This difference in video response, using the LED to synchronize the two systems, is the lag calculation of the monitor.
Sorry, I have missed that. Then I’m quite happy with the results, and very impressed the analog -> digital convertor is so fast.
Thanks! 🙂
This article is fantastic, you’re are a Smash Researcher ^_^
I liked the article a lot. However, I felt that it didn’t go into the main reason lag changes the game. In situations where human reaction time determines what a feasible response is, extra lag makes it so the ideal move changes. Without 2-3 frames of lag, I can react and Dsmash with peach (5frame start up). However, in tight situations, if I am lagging two frames, the correct move for me to input becomes jab because nothing else will come out fast enough. Losing access to jab effectively changes the balance of the game due to the lag. This is the same reason why I don’t play dolphin online melee while using any of my main characters. The correct options are no longer correct when an extra 2 frames of lag are added. Even 1 frame will change the game some, but I think if monitors can keep it to one frame of lag, the community could adjust.
True. I didn’t really consider it from that viewpoint.
Still being that the monitor is well under 1 frame, we can safely say that it won’t change the game much. I discussed power shielding as a reaction based timing window. The analysis would actually be very similar in your example, it’s still a reaction window.
I think the lag is so minuscule that you don’t have to change the way you play. All the options that were previously valid are still valid.
What specs should we be looking for to find LCD’s that would be compatible with the LGP or Component to HDMI Converter? I’m looking at this http://toptengamer.squidoo.com/best-24-inch-gaming-monitor article and it seems there are many candidates that have low input lag. I could be missing something so what requirements should I look out for considering performance with Melee is all I care about?
Hi there. Sorry for the late response. I’m actually awaiting one more device that I want to test and I will begin working on a guide about what to purchase. I will list the pros and cons of various devices as well as a comparison of the two monitors I personally have, the BenQ RL2455HM and the Asus VH238H.
If you don’t want to wait and money is not an object, currently I would recommend the BenQ RL2455HM and the Elgato Game Capture HD. That said I would recommend waiting a bit longer. Hopefully I receive the last device soon…
Hey! Did you tested the Elgato Game Capture HD? Details please! 😀
I’m recommending it for a reason. I am now personally using it as my primary conversion device. It seems to equal the LGP lag-wise while being more impervious to the blackout problem. That said I don’t like it for streaming purposes, so I still use the LGP to stream.
Basically my current set up is as follows:
Wii Component Output -> Elgato Game Capture HD -> LGP HDMI In -> BenQ RL2455HM.
So I use the Elgato for the component -> HDMI signal conversion and I use the LGP for streaming. The HDMI In of the LGP does not induce and lag and does not have the problem with blackouts that its component in has.
There might be cheaper, comparable lag-wise devices available though, so before you go out and buy one you might want to wait for the full results.
[…] Ugh this TV Lags by Jas […]
Great work on this article jlaferri. I just wanted you to know that based on your testing, the 2.86ms of additional lag over CRT is very similar to the top readings presented by the lag tester I use. I tested 3ms using the lag tester for the top part of the screen on the RL2455HM. I use averages on my site based on feedback from other main sites. We use averages because not all devices are consistent with the way they scan.
If anyone is curious, I can provide top bar readings for any display in my database marked “AVG”. Simply send me an email and I can send you the information. The top bar readings are closest to “true” input lag.
Thanks.
I’ve done further testing since the article and I’ve actually started using the average method myself. That said, I compare it to the average reading for a CRT. I think this is likely even more accurate than a simple top reading.
In general though, extreme precision is probably not really required to make the decision “this TV is very good”.
Hey, what kind of high speed camera do you use and how much did it cost?
I’m thinking of buying a used Casio Exilim EX-FH100, wihch supports 480fps (judging from your ~2.1ms intervals, you seem to use the same frame rate). At that speed, the resolution is only 224×64, and I’m not sure whether this will be enough to tell the inter-frame details apart.
By the way, it would be great if you could compare Gamecube VGA/DSUB modded cables to the HDMI input from the LGP. All smashers who played on my setup (cheap 1080p LCD monitor with 480p Gamecube RGBHV input) so far couldn’t feel any lag compared to good CRTs.
If this turns out to have comparable lag, even more monitors might become viable.
Hey Kadano.
I’ve actually moved beyond the high speed camera method at this point. I use a device I made in conjunction with a homebrew app to determine lag. I still have plans to tidy up the device and try manufacture/distribute some. The camera method has a fair bit of variation. To answer your question though, the camera I used was a Casio Exilim Ex-zr100.
If you want to get something in a more timely manner and aren’t afraid to do a bit of soldering I could help you create the device using an Arduino. Unfortunately since the method requires homebrew, you wouldn’t be able to do it on a GC with the cables you mentioned unless you had something like this maybe: http://www.gc-forever.com/wiki/index.php?title=Datel%27s_SD_Media_Launcher .
If you’re interested in discussing more feel free to message me on smashboards, my user name is Fizzi.
Hey jlaferri,
I’ve picked up the Avermedia device and BenQ monitor that you’ve used in this test. I was wondering if there were any additional settings in either melee or the monitor settings that you used to get the best picture and performance? I noticed when I first set everything up the monitor displayed melee in a very small window, when I adjusted the display mode to full it filled up the screen, but I was wondering if you played around with any of those types of settings to get the best results.
Thanks.
Check the very top of the article where I link a Reddit post. I discussed the settings to change somewhere in that post.
[…] ¹Depending on the time left until the next frame polls for your control stick position, you will have between 0 and 16.66 milliseconds to complete the motion. Fizzi has explained this very well with diagrams in his post on lag. […]
Hi, I know this post is old but I was wondering if you could just clear up something for me. So due to where I live I physically don’t have the space for a crt, so was going to go with the BenQ Rl2455hm. And I was thinking of this set up as a whole: Wii – component cable – Startech vga component adapter – Avermedia C875 – HDMI cable – BenQ. And my pc to the capture card via USB.
However my concern is that the conversion to the HDMI from the C875 to the BenQ will cause noticeable lag. Do you know if it will or not or ways around this if it does? Just that I’ve been looking around and can’t seen to find a definitive setup that a lot of people use but this ^ it’s all I can think of.
Many thanks!
FWIW blurbusters has a better input to photons method http://www.blurbusters.com/gsync/gsync101-input-lag/ Wiring the actual input button for the sync eliminates any engine and processing lag issues and you can really compare the whole time chain effectively. Its a great site in general if you’re interested in lag and motion blur.
Hello just wanted to give you a quick heads up. The words in your content seem to be running off the screen in Ie.
I’m not sure if this is a format issue or something to do with internet
browser compatibility but I thought I’d post to let you know.
The style and design look great though! Hope you get the issue solved soon. Cheers
Интернет-магазин «Флорибу» предлагает огромный ассортимент цветов, которые преподносят по любому поводу и без. Нежные, трепетные и душевные композиции станут дополнением к основному подарку на юбилей, день рождения, помолвку или свадьбу. В компании представлен большой выбор авторских букетов, которые составлены виртуозными флористами, прошедшими обучение. Они регулярно повышают квалификацию, отслеживают мировые тенденции, чтобы соответствовать высоким требованиям покупателей. На сайте https://флорибу.рф/ (розовый мишка ) ознакомьтесь с условиями покупки. Доставка букета осуществляется в минимальные сроки, поэтому виновник торжества получит цветы в строго оговоренные сроки. К преимуществам заказа цветов в этой компании относят:
– большой выбор букетов, презентов на любой случай;
– низкие цены, бонусы;
– удобные способы оплаты;
– быстрая доставка.
Есть возможность оформить букет в соответствии с пожеланиями клиента. Используется крафтовая бумага, шляпные коробки, прозрачная пленка и банты для того, чтобы композиция выглядела более стильно и привлекательно. Закажите монобукеты или варианты из нескольких видов цветов, изысканно украшенных зеленью и мелкими цветами.
Если презент принадлежит девушке, второй половинке, то украсьте его милыми и забавными подарками. Например, мягкой игрушкой, сувенирной продукцией. Выберете корзину со сладостями, которая не оставит равнодушной ни одну девушку. Магазины работают в круглосуточном режиме, а потому сделать заказ можно в любое время. Все цветы свежие, а потому простоят несколько дней и обрадуют своим утонченным благоуханием. Заказать букет просто. Необходимо только согласовать с оператором время и дату доставки, оплатить покупку курьеру после ее получения. Регулярно на сайте устраиваются акции, действуют скидки.