/* ============================================================
   AWGroup LP — floating "LINEで簡単応募" button (top-right)
   Always visible. 5 Alice-in-Wonderland themed variants (data-lf).
   ============================================================ */
.lineflt-switch{position:fixed;top:8px;left:8px;z-index:60;display:flex;gap:4px;
  background:rgba(255,255,255,.85);border-radius:999px;padding:4px 6px;
  box-shadow:0 4px 12px -4px rgba(120,40,110,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.lineflt-switch button{width:22px;height:22px;border-radius:50%;border:1.4px solid var(--pink-soft);
  background:#fff;color:var(--rose-ink);font-family:var(--f-disp);font-weight:900;font-size:10px;cursor:pointer;
  transition:transform .2s ease,background .2s ease,color .2s ease;}
.lineflt-switch button.on{background:var(--rose-grad);color:#fff;border-color:transparent;transform:scale(1.12);}

.lineflt{position:fixed;bottom:16px;right:14px;z-index:55;display:inline-flex;align-items:center;gap:8px;
  text-decoration:none;padding:10px 16px 10px 13px;border-radius:999px;
  font-family:var(--f-disp);-webkit-tap-highlight-color:transparent;
  animation:lfBob 3.2s ease-in-out infinite;}
@keyframes lfBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-3px);}}
.lineflt__ico{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;overflow:hidden;}
.lineflt__ico svg{width:28px;height:28px;}
.lineflt__txt{display:flex;flex-direction:column;line-height:1.05;}
.lineflt__txt b{font-weight:900;font-size:14px;letter-spacing:.02em;}
.lineflt__txt span{font-size:10px;font-weight:700;opacity:.9;}
.lineflt__deco{position:absolute;pointer-events:none;}

/* ---- A : 06 LINE green w/ heart pop ---- */
.lineflt[data-lf="a"]{background:linear-gradient(135deg,#8DE055,#5CC23A);color:#fff;
  box-shadow:0 12px 24px -8px rgba(70,160,40,.6),inset 0 1px 0 rgba(255,255,255,.4);}
.lineflt[data-lf="a"] .lineflt__ico{background:rgba(255,255,255,.25);color:#fff;}
.lineflt[data-lf="a"] .lineflt__deco{top:-7px;right:-3px;width:16px;height:16px;
  background:radial-gradient(circle at 40% 35%,#fff,#FF8FC0 70%);border-radius:50%;
  box-shadow:0 2px 6px rgba(216,30,114,.4);animation:lfTwk 2.4s ease-in-out infinite;}
.lineflt[data-lf="a"] .lineflt__deco::after{content:"♡";position:absolute;inset:0;display:grid;place-items:center;
  font-size:9px;color:#D81E72;}

/* ---- B : pink macaron w/ gold rim (ゆめかわ) ---- */
.lineflt[data-lf="b"]{background:linear-gradient(135deg,#FFB7D8,#FF7EB6);color:#fff;
  border:2px solid #FFE6A6;box-shadow:0 12px 24px -8px rgba(216,30,114,.55);}
.lineflt[data-lf="b"] .lineflt__ico{background:#fff;color:#06C755;}
.lineflt[data-lf="b"] .lineflt__deco{top:-6px;left:-6px;font-size:14px;}
.lineflt[data-lf="b"] .lineflt__deco::before{content:"✦";color:#FFE6A6;text-shadow:0 0 8px rgba(245,221,154,.9);
  animation:lfTwk 2.2s ease-in-out infinite;}

/* ---- C : pocket-watch / ticket (アリスの懐中時計) ---- */
.lineflt[data-lf="c"]{background:#FFF8F3;color:var(--rose-deep);
  border:2px dashed var(--rose);box-shadow:0 10px 22px -8px rgba(120,40,110,.4);}
.lineflt[data-lf="c"] .lineflt__ico{background:var(--rose-grad);color:#fff;}
.lineflt[data-lf="c"] .lineflt__txt b{color:var(--rose-deep);}
.lineflt[data-lf="c"] .lineflt__txt span{color:var(--rose-ink);}
.lineflt[data-lf="c"]::before{content:"⏰";position:absolute;top:-8px;right:-6px;font-size:14px;
  animation:lfTwk 2.6s ease-in-out infinite;}

/* ---- D : playing-card tab (トランプ) ---- */
.lineflt[data-lf="d"]{background:#fff;color:var(--ink);border:2px solid var(--rose);
  border-radius:12px;box-shadow:0 10px 22px -8px rgba(120,40,110,.45);padding-left:34px;}
.lineflt[data-lf="d"] .lineflt__ico{position:absolute;left:6px;background:var(--rose-grad);color:#fff;width:22px;height:22px;border-radius:6px;}
.lineflt[data-lf="d"] .lineflt__ico svg{width:14px;height:14px;}
.lineflt[data-lf="d"] .lineflt__txt b{color:var(--rose-deep);}
.lineflt[data-lf="d"]::before{content:"♥";position:absolute;top:3px;right:6px;font-size:9px;color:var(--rose);}
.lineflt[data-lf="d"]::after{content:"♠";position:absolute;bottom:3px;left:6px;font-size:9px;color:var(--ink-soft);}

/* ---- E : glass capsule w/ aqua glow (ふしぎな小瓶) ---- */
.lineflt[data-lf="e"]{background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(214,200,255,.85));
  color:var(--rose-deep);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1.5px solid rgba(255,255,255,.7);box-shadow:0 12px 26px -8px rgba(124,91,208,.5),inset 0 1px 0 #fff;}
.lineflt[data-lf="e"] .lineflt__ico{background:transparent;}
.lineflt[data-lf="e"] .lineflt__txt b{color:var(--rose-deep);}
.lineflt[data-lf="e"] .lineflt__txt span{color:var(--rose-ink);}
.lineflt[data-lf="e"] .lineflt__deco{inset:0;border-radius:999px;
  box-shadow:0 0 16px 2px rgba(127,233,255,.5);animation:lfGlow 2.8s ease-in-out infinite;}

@keyframes lfTwk{0%,100%{transform:scale(.8) rotate(0);opacity:.7;}50%{transform:scale(1.15) rotate(16deg);opacity:1;}}
@keyframes lfGlow{0%,100%{opacity:.5;}50%{opacity:1;}}

@media (prefers-reduced-motion:reduce){
  .lineflt,.lineflt__deco,.lineflt[data-lf="c"]::before{animation:none;}
}

/* ============================================================
   aura — always-on ambient glow around the button (3 designs)
   ============================================================ */
.aura-switch{position:fixed;bottom:18px;left:8px;z-index:60;display:flex;align-items:center;gap:4px;
  background:rgba(255,255,255,.85);border-radius:999px;padding:4px 8px;
  box-shadow:0 4px 12px -4px rgba(120,40,110,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.aura-switch__lbl{font-family:var(--f-serif);font-style:italic;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--rose-ink);margin-right:2px;}
.aura-switch button{width:22px;height:22px;border-radius:50%;border:1.4px solid var(--pink-soft);
  background:#fff;color:var(--rose-ink);font-family:var(--f-disp);font-weight:900;font-size:10px;cursor:pointer;
  transition:transform .2s ease,background .2s ease,color .2s ease;}
.aura-switch button.on{background:var(--rose-grad);color:#fff;border-color:transparent;transform:scale(1.12);}

.lineflt__aura{position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;}

/* 1 — soft pulsing halo (ふわっと拡がる光輪) */
.lineflt[data-aura="1"] .lineflt__aura{
  box-shadow:0 0 0 0 rgba(127,233,255,.55);
  animation:auraPulse 2.4s ease-out infinite;}
.lineflt[data-aura="1"] .lineflt__aura::before{content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:0 0 0 0 rgba(255,143,192,.5);animation:auraPulse2 2.4s ease-out infinite .6s;}
@keyframes auraPulse{0%{box-shadow:0 0 0 0 rgba(127,233,255,.5);}70%{box-shadow:0 0 0 18px rgba(127,233,255,0);}100%{box-shadow:0 0 0 0 rgba(127,233,255,0);}}
@keyframes auraPulse2{0%{box-shadow:0 0 0 0 rgba(255,143,192,.45);}70%{box-shadow:0 0 0 26px rgba(255,143,192,0);}100%{box-shadow:0 0 0 0 rgba(255,143,192,0);}}

/* 2 — rotating sparkle / conic shimmer ring (きらきら回る） */
.lineflt[data-aura="2"] .lineflt__aura{inset:-5px;padding:5px;
  background:conic-gradient(from 0deg,#7FE9FF,#FF8FC0,#FFE6A6,#C79BF2,#7FE9FF);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 5px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 5px));
  filter:blur(.5px) drop-shadow(0 0 8px rgba(127,233,255,.5));opacity:.9;
  animation:auraSpin 4s linear infinite;}
.lineflt[data-aura="2"] .lineflt__aura::after{content:"";position:absolute;inset:-4px;border-radius:inherit;
  background:inherit;filter:blur(7px);opacity:.5;}
@keyframes auraSpin{to{transform:rotate(360deg);}}

/* 3 — breathing layered glow (息づく多重グロー) */
.lineflt[data-aura="3"] .lineflt__aura{
  animation:auraBreathe 3s ease-in-out infinite;}
@keyframes auraBreathe{
  0%,100%{box-shadow:0 0 10px 1px rgba(127,233,255,.4),0 0 22px 4px rgba(255,143,192,.28),0 0 36px 8px rgba(201,173,240,.2);}
  50%{box-shadow:0 0 18px 3px rgba(127,233,255,.7),0 0 34px 8px rgba(255,143,192,.45),0 0 54px 14px rgba(201,173,240,.32);}}

@media (prefers-reduced-motion:reduce){
  .lineflt__aura,.lineflt__aura::before,.lineflt__aura::after{animation:none!important;}
}
