/* First-visit signature. All rules are isolated: no page, navigation or payment styles.
   The JS checks this sentinel before adding the cover. No CSS => no cover.
   The independent 5s CSS fuse removes hit-testing even if JS later fails. */
:root { --luvia-launch-css: 1; }
#luvia-launch {
  position: fixed; inset: 0; z-index: 2147483600; isolation: isolate;
  overflow: hidden; background: #fff; color: #292521;
  font: 400 14px/1.5 Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  animation: lvlaunch-fuse 1ms 5000ms forwards;
  transition: opacity 320ms ease, transform 360ms cubic-bezier(.2,.7,.2,1);
}
#luvia-launch, #luvia-launch * { box-sizing: border-box; }
#luvia-launch.lv-launch-leaving { opacity: 0; transform: scale(1.045); pointer-events: none; }
#luvia-launch .lv-launch-atmosphere {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse at 50% 43%, #f4e6d3 0, #fbf1e7 24%, #fffcf9 55%, #fff 80%);
  animation: lvlaunch-light 2600ms ease both;
}
#luvia-launch .lv-launch-atmosphere::after {
  content: ''; position: absolute; top: -25%; left: -90%; width: 280%; height: 120%;
  background: linear-gradient(transparent, #f5c6aa33, transparent);
  transform: rotate(-28deg); animation: lvlaunch-drift 5200ms ease-in-out infinite alternate;
}
#luvia-launch .lv-launch-content {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, calc(-50% - 10px));
  width: min(740px, calc(100% - 32px)); text-align: center; pointer-events: none;
}
#luvia-launch .lv-launch-stage { position: relative; width: min(320px, 100%); height: 260px; margin: 0 auto; }
#luvia-launch .lv-launch-art { position: absolute; width: 320px; height: 260px; left: 50%; top: 50%; margin: -130px 0 0 -160px; }
#luvia-launch .lv-launch-halo {
  position: absolute; width: 240px; height: 240px; top: 10px; left: 40px; border-radius: 50%;
  border: 1px solid #ffffffd9; background: linear-gradient(140deg, #fff, #f7eadb 42%, #ebdcc9 72%, #fff);
  box-shadow: 0 13px 24px #bc9c7833;
  animation: lvlaunch-halo 2600ms ease both, lvlaunch-breathe 5200ms 2600ms ease-in-out infinite alternate;
}
#luvia-launch .lv-launch-halo::after { content: ''; position: absolute; inset: 9px; border-radius: 50%; border: 1px solid #ffffff80; background: #fffcf647; }
#luvia-launch .lv-launch-orbit {
  position: absolute; width: 334px; height: 334px; left: -7px; top: -37px; border-radius: 50%;
  border: 1.5px solid; border-color: #d4aa77 #ffffffe6 #ebd5b6 #dbc5a0;
  transform: rotate(-28deg) scaleY(.55); animation: lvlaunch-orbit 2600ms ease both;
}
#luvia-launch .lv-launch-orbit-second {
  width: 300px; height: 300px; top: -20px; left: 10px; border-width: 1px;
  border-color: #fff #dabf9855 #c9ad8999 #dabf9855;
  transform: rotate(26deg) scaleY(.62); animation: lvlaunch-orbit-second 2600ms ease both;
}
#luvia-launch .lv-launch-pearl {
  position: absolute; left: calc(50% - 10px); top: calc(50% - 10px); width: 20px; height: 20px;
  border-radius: 50%; border: .5px solid #ffffffb3; box-shadow: 0 4px 8px #b9815059;
  background: linear-gradient(135deg, #fffef1, #e8c088, #b67b40);
  animation: lvlaunch-pearl-left 2600ms linear both;
}
#luvia-launch .lv-launch-pearl::after { content: ''; position: absolute; top: 3px; left: 4px; width: 7px; height: 4px; border-radius: 50%; background: #ffffff99; }
#luvia-launch .lv-launch-pearl-right { background: linear-gradient(135deg, #fff9ef, #f0c6ab, #c9956d); animation-name: lvlaunch-pearl-right; }
#luvia-launch .lv-launch-mark {
  display: block; position: absolute; width: 132px; height: 142px; top: 59px; left: 94px;
  color: #d9a85c; stroke: none; fill: none; overflow: visible;
  animation: lvlaunch-mark 2600ms ease both;
}
#luvia-launch .lv-launch-mark path {
  fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 100; stroke-dashoffset: 0; animation: lvlaunch-draw 2600ms cubic-bezier(.45,0,.2,1) both;
}
#luvia-launch .lv-launch-mark circle { fill: currentColor; stroke: none; animation: lvlaunch-head 2600ms ease both; }
#luvia-launch .lv-launch-wordmark { margin: 24px 0 18px; font-size: 10px; line-height: 17px; font-weight: 600; letter-spacing: 4px; color: #80603f; animation: lvlaunch-wordmark 2600ms ease both; }
#luvia-launch .lv-launch-title { margin: 0; font-weight: 600; font-size: clamp(32px, 4vw, 44px); line-height: 1.09; letter-spacing: -1.5px; }
#luvia-launch .lv-launch-title span { display: block; animation: lvlaunch-hello 2600ms ease both; }
#luvia-launch .lv-launch-title .lv-launch-invitation { color: #926338; animation-name: lvlaunch-invitation; }
#luvia-launch .lv-launch-tagline { margin: 19px auto 0; max-width: 360px; font-size: 13px; line-height: 21px; color: #75624f; animation: lvlaunch-tagline 2600ms ease both; }
#luvia-launch .lv-launch-footer { position: absolute; bottom: max(20px, env(safe-area-inset-bottom)); left: 20px; right: 20px; text-align: center; }
#luvia-launch .lv-launch-dots { display: flex; justify-content: center; gap: 5px; margin-bottom: 6px; }
#luvia-launch .lv-launch-dots i { display: block; width: 4px; height: 4px; background: #a1784c; border-radius: 50%; animation: lvlaunch-dot 1600ms ease-in-out infinite alternate; }
#luvia-launch .lv-launch-dots i:nth-child(2) { animation-delay: -500ms; }
#luvia-launch .lv-launch-dots i:nth-child(3) { animation-delay: -1000ms; }
#luvia-launch .lv-launch-skip { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; padding: 10px 18px; border: 0; border-radius: 30px; background: transparent; font: inherit; font-size: 11px; color: #75563c; cursor: pointer; touch-action: manipulation; }
#luvia-launch .lv-launch-skip:hover { background: #f2e6d9; }
#luvia-launch .lv-launch-skip:focus-visible { outline: 2px solid #926338; outline-offset: 3px; }
#luvia-launch.lv-launch-paused, #luvia-launch.lv-launch-paused *, #luvia-launch.lv-launch-paused *::after { animation-play-state: paused; }
@keyframes lvlaunch-fuse { to { visibility: hidden; pointer-events: none; } }
@keyframes lvlaunch-light { from { opacity: 0; } 40%,to { opacity: 1; } }
@keyframes lvlaunch-drift { from { transform: translateX(-35px) rotate(-28deg); } to { transform: translateX(35px) rotate(-28deg); } }
@keyframes lvlaunch-halo { from { opacity: 0; transform: scale(.78); } 48%,to { opacity: 1; transform: scale(1); } }
@keyframes lvlaunch-breathe { to { transform: scale(1.035); } }
@keyframes lvlaunch-orbit { from { opacity: 0; transform: rotate(-62deg) scaleY(.55); } 38% { opacity: .9; } to { opacity: .7; transform: rotate(-28deg) scaleY(.55); } }
@keyframes lvlaunch-orbit-second { 0%,22% { opacity: 0; transform: rotate(42deg) scaleY(.62); } to { opacity: .65; transform: rotate(26deg) scaleY(.62); } }
@keyframes lvlaunch-pearl-left {
  0% { opacity: 0; transform: translate(-132px,-18px) scale(1.45); }
  7% { opacity: 1; } 16% { transform: translate(-89px,-85px) scale(1.3); }
  32% { transform: translate(-43px,-69px) scale(1.15); } 38% { opacity: 1; }
  53%,100% { opacity: 0; transform: translate(-15px,-44px) scale(.6); }
}
@keyframes lvlaunch-pearl-right {
  0% { opacity: 0; transform: translate(132px,70px) scale(1.6); }
  10% { opacity: 1; } 18% { transform: translate(104px,37px) scale(1.3); }
  34% { transform: translate(60px,-5px) scale(1.1); } 40% { opacity: 1; }
  55%,100% { opacity: 0; transform: translate(17px,-46px) scale(.6); }
}
@keyframes lvlaunch-mark { from { transform: scale(.67); } 72%,to { transform: scale(1); } }
@keyframes lvlaunch-draw { 0%,26% { stroke-dashoffset: 100; opacity: 0; } 27% { opacity: 1; } 65%,100% { stroke-dashoffset: 0; opacity: 1; } }
@keyframes lvlaunch-head { 0%,38% { opacity: 0; } 54%,100% { opacity: 1; } }
@keyframes lvlaunch-wordmark { 0%,28% { opacity: 0; transform: translateY(14px); } 55%,100% { opacity: 1; transform: translateY(0); } }
@keyframes lvlaunch-hello { 0%,38% { opacity: 0; transform: translateY(24px); } 70%,100% { opacity: 1; transform: translateY(0); } }
@keyframes lvlaunch-invitation { 0%,48% { opacity: 0; transform: translateY(24px); } 82%,100% { opacity: 1; transform: translateY(0); } }
@keyframes lvlaunch-tagline { 0%,65% { opacity: 0; } 94%,100% { opacity: 1; } }
@keyframes lvlaunch-dot { from { opacity: .35; } to { opacity: 1; } }
@media (max-width: 420px) {
  #luvia-launch .lv-launch-tagline { max-width: 275px; font-size: 12px; line-height: 20px; }
}
@media (max-height: 700px) {
  #luvia-launch .lv-launch-stage { height: 190px; }
  #luvia-launch .lv-launch-art { transform: scale(.74); }
  #luvia-launch .lv-launch-wordmark { margin: 8px 0 14px; font-size: 9px; line-height: 15px; }
  #luvia-launch .lv-launch-title { font-size: 28px; line-height: 1.1; letter-spacing: -1px; }
  #luvia-launch .lv-launch-tagline { margin-top: 14px; font-size: 12px; line-height: 18px; }
  #luvia-launch .lv-launch-footer { bottom: max(8px, env(safe-area-inset-bottom)); }
}
/* Landscape / large zoom: reveal the usable page instead of obscuring it. */
@media (max-height: 450px) { #luvia-launch { display: none; } }
@media (prefers-reduced-motion: reduce) { #luvia-launch { display: none; } }
