/* Portal (トップページ) へ戻る強調ボタン共通スタイル */
.portal-button-wrapper { position:fixed; bottom:14px; left:14px; z-index:3000; }
@media (max-width: 640px){ .portal-button-wrapper { bottom:10px; left:10px; } }
.portal-button {
  --grad-from:#ff9d2f; /* オレンジ */
  --grad-to:#ff6126;   /* レッド寄り */
  --glow:rgba(255,140,60,0.55);
  display:inline-flex; align-items:center; justify-content:center;
  padding:.5em; border-radius:50%; text-decoration:none; color:#fff;
  background:linear-gradient(135deg,var(--grad-from),var(--grad-to));
  box-shadow:0 4px 14px -2px var(--glow), 0 0 0 0 var(--glow);
  position:relative; overflow:hidden; isolation:isolate;
  border:1px solid rgba(255,255,255,0.15);
  transition: transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .4s, background-position .5s;
  background-size:200% 200%; background-position:0 50%;
  width:48px; height:48px;
}
.portal-button:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.portal-button:hover { transform: translateY(-3px) scale(1.04); background-position:100% 50%; box-shadow:0 6px 24px -4px var(--glow), 0 0 0 4px rgba(255,255,255,0.06); }
.portal-button:active { transform:translateY(0) scale(.98); box-shadow:0 3px 10px -2px var(--glow); }
.portal-button::after { /* ライトグリント */
  content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(255,255,255,0) 20%,rgba(255,255,255,.25) 40%,rgba(255,255,255,0) 55%);
  transform:translateX(-100%); pointer-events:none; mix-blend-mode:overlay;
}
.portal-button:hover::after { animation: portalGlint 1.2s forwards; }
@keyframes portalGlint { to { transform:translateX(100%); } }

/* 輝きの鼓動 */
@keyframes portalPulse { 0%,100%{ box-shadow:0 4px 14px -2px var(--glow),0 0 0 0 var(--glow);} 60%{ box-shadow:0 4px 18px -2px var(--glow),0 0 0 10px rgba(255,140,60,0);} }
.portal-button { animation: portalPulse 3.2s infinite; }

/* ダークテーマ背景とのコントラスト補助 */
body[data-bs-theme="dark"] .portal-button { filter:brightness(1.05) saturate(1.1); }

/* 代替カラーバリアント (必要なら利用可) */
.portal-button.variant-blue { --grad-from:#3a7bd5; --grad-to:#00d2ff; --glow:rgba(0,136,255,0.55); }
.portal-button.variant-pink { --grad-from:#ff5f6d; --grad-to:#ffc371; --glow:rgba(255,120,140,0.55); }
