/* ================= THEME TOKENS (scoped) ================= */
.flws-preld{
  --bg:#fff;                 /* พื้นหลัง */
  --fg:#6a4e37;              /* สีข้อความ */
  --glint:rgba(255,255,255,.95);
  --shadow:rgba(0,0,0,.12);
  --min-show:520ms;          /* กันแวบ */
}

/* ================= LAYOUT ================================ */
.flws-preld{
  position:fixed; inset:0; z-index:9999;
  display:grid; place-items:center;
  background:var(--bg);
  transition:opacity .45s ease;
}
.flws-preld.is-done{ opacity:0; pointer-events:none }
.flws-preld.is-removed{ display:none }

.flws-preld__box{
  text-align:center; color:var(--fg);
  animation: preld-enter .35s ease both;
}

/* ================= LOGO (NO FRAME) ======================= */
.flws-preld__logo-wrap{
  position:relative; display:inline-block;
  isolation:isolate; /* ให้แสงวิ้งไม่รบกวนภายนอก */
}
.flws-preld__logo{
  width: clamp(240px, 32vw, 420px);   /* ใหญ่/ย่ออัตโนมัติ */
  height:auto; display:block; object-fit:contain;
  filter: drop-shadow(0 8px 24px var(--shadow))
          brightness(1.05) contrast(1.08);
  transform-origin:50% 50%;
  /* ลอยขึ้น "แนวตั้งตรง" */
  animation: logo-rise-vert 640ms cubic-bezier(.2,.7,.1,1) 40ms both;
}

/* แสงวิ้งกวาด "ตรง" */
.flws-preld__glint{
  position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(120deg,
    transparent 0%,
    rgba(255,255,255,0) 40%,
    var(--glint) 50%,
    rgba(255,255,255,0) 60%,
    transparent 100%);
  mix-blend-mode: screen;
  transform: translateX(-140%);
  animation: glint-straight 2s ease-in-out .25s infinite;
  opacity:.9;
}

/* ดาวประกายเล็ก ๆ */
.flws-preld__spark{
  position:absolute; width:12px; height:12px; pointer-events:none;
  background:
    radial-gradient(circle, #fff 0 35%, transparent 36%),
    radial-gradient(circle, rgba(255,255,255,.9) 0 15%, transparent 16%);
  filter: drop-shadow(0 0 10px rgba(255,255,255,.9))
          drop-shadow(0 0 18px rgba(210,160,120,.55));
  border-radius:50%;
  transform: scale(0); opacity:0;
  animation: spark-pop 1.9s ease-in-out infinite;
}
.flws-preld__spark.s1{ left:-6%; top: 22%; animation-delay:.35s }
.flws-preld__spark.s2{ right:-4%; top: 36%; animation-delay:.95s }
.flws-preld__spark.s3{ left:50%; bottom:-6%; transform-origin:-20px 20px; animation-delay:1.45s }

/* ข้อความ */
.flws-preld__note{
  margin-top:16px; font-size:14px; line-height:1.55;
  color:var(--fg); opacity:.75;
}

/* ================= ANIMATIONS ============================ */
@keyframes preld-enter{
  from{ opacity:0; transform: translateY(8px) }
  to  { opacity:1; transform: translateY(0) }
}
@keyframes logo-rise-vert{
  0%   { opacity:0; transform: translateY(14px) scale(.96) }
  60%  { opacity:1; transform: translateY(0)    scale(1.04) }
  100% { opacity:1; transform: translateY(0)    scale(1) }
}
@keyframes glint-straight{
  0%,10%{ transform: translateX(-140%); opacity:0 }
  35%   { opacity:.95 }
  60%   { transform: translateX(140%);  opacity:0 }
  100%  { transform: translateX(140%);  opacity:0 }
}
@keyframes spark-pop{
  0%   { transform:scale(0);   opacity:0 }
  25%  { transform:scale(1.0); opacity:1 }
  55%  { transform:scale(.82); opacity:.85 }
  100% { transform:scale(0);   opacity:0 }
}

/* ================= RESPONSIVE =========================== */
@media (max-width: 768px){
  .flws-preld__logo{ width:min(78vw, 420px) }  /* ใหญ่กำลังดีบนมือถือ */
  .flws-preld__note{ font-size:15px }
  .flws-preld__spark.s1{ left:-10%; top: 14% }
  .flws-preld__spark.s2{ right:-10%; top: 30% }
  .flws-preld__spark.s3{ bottom:-10% }
}

/* ลด motion ตามระบบ */
@media (prefers-reduced-motion: reduce){
  .flws-preld__logo{ animation:none }
  .flws-preld__glint, .flws-preld__spark{ display:none }
}


/* ===== เส้นใต้โลโก้แบบหรูหรา ===== */
.flws-preld__underline{
  display:block;
  width: clamp(160px, 38vw, 420px);
  height:2px;
  margin:16px auto 10px auto;
  border-radius:999px;
  background: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    #f6dec7 15%,
    #e0b992 50%,
    #c18e69 85%,
    rgba(255,255,255,0) 100%);
  box-shadow:
    0 1px 4px rgba(0,0,0,.1),
    inset 0 1px 0 rgba(255,255,255,.8);
  opacity:0;
  transform:scaleX(.8);
  animation: underline-show .8s ease .2s forwards;
}

/* เอฟเฟกต์ค่อย ๆ ปรากฏพร้อมโลโก้ */
@keyframes underline-show{
  0%{ opacity:0; transform:scaleX(.8); filter:blur(2px); }
  60%{ opacity:.8; transform:scaleX(1.02); filter:blur(0); }
  100%{ opacity:1; transform:scaleX(1); }
}

/* มือถือ: ขนาดพอดีกับโลโก้ */
@media (max-width:768px){
  .flws-preld__underline{
    width: clamp(140px, 60vw, 360px);
    margin:14px auto 8px auto;
  }
}
