@charset "utf-8";

:root {
  --btp-size: 48px;
  --btp-bg: color-mix(in oklab, CanvasText 45%, transparent); /* 対応ブラウザで半透明を見やすく */
  --btp-bg-fallback: rgba(0, 0, 0, 0.7);
  --btp-fg: #fff;
  --btp-fg-dark: #fff;
  --btp-shadow: 0 6px 18px rgba(0,0,0,.16);
  --btp-shadow-hover: 0 8px 24px rgba(0,0,0,.24);
  --btp-radius: 999px;
  --btp-gap: 16px;
}


.back-to-top {
  position: fixed;
  right: max(var(--btp-gap), env(safe-area-inset-right));
  bottom: calc(max(var(--btp-gap), env(safe-area-inset-bottom)) + 8px);
  inline-size: var(--btp-size);
  block-size: var(--btp-size);
  display: grid;
  place-items: center;

  background: var(--btp-bg, var(--btp-bg-fallback));
  color: var(--btp-fg);
  border: none;
  border-radius: var(--btp-radius);
  box-shadow: var(--btp-shadow);
  backdrop-filter: saturate(140%) blur(6px); /* ガラス感、対応ブラウザで適用 */
  -webkit-backdrop-filter: saturate(140%) blur(6px);

  cursor: pointer;
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  transition: opacity .22s ease, transform .22s ease, box-shadow .22s ease;
  z-index: 1000;

  /* スクリーンリーダー向けに隠しテキストを追加する場合は ::after などで */
}

.back-to-top.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.back-to-top:hover {
  box-shadow: var(--btp-shadow-hover);
  transform: translateY(-1px) scale(1.03);
}

.back-to-top:active {
  transform: translateY(0) scale(0.98);
}

.back-to-top:focus-visible {
  outline: 2px solid #4C9AFF;
  outline-offset: 3px;
}

/* 小さな画面では少し小さく */
@media (max-width: 480px) {
  :root { --btp-size: 44px; }
}
