/* === Dot Menu / Sidebar === */
.dot-menu {
  position: fixed;
  top: 14px;
  left: 14px;
  z-index: 40;
}

/* ——— Dot trigger button ——— */
.dot .dot-trigger {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: color-mix(in oklab, var(--bg) 85%, white 15%);
  border: 1px solid rgba(25, 255, 138, .22);
  box-shadow:
    0 14px 30px -10px var(--shadow),
    0 0 0 6px rgba(25, 255, 138, .04) inset;
  backdrop-filter: blur(6px);
  transition:
    transform .2s var(--soft),
    background .25s var(--soft),
    border-color .25s var(--soft);
}

.dot .dot-trigger .dots {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  pointer-events: none;
}

.dot .dot-trigger .dots i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(25, 255, 138, .78);
  box-shadow: 0 0 6px rgba(25, 255, 138, .25);
  transition: background .2s var(--soft), box-shadow .2s var(--soft), transform .2s var(--soft);
}

/* hover/open accents */
.dot:hover .dot-trigger .dots i,
.dot[open] .dot-trigger .dots i {
  background: var(--accent);
  box-shadow: 0 0 10px rgba(25, 255, 138, .55);
  transform: translateY(-1px);
}

.dot .dot-trigger:focus-visible {
  outline: none;
  box-shadow: 0 10px 28px var(--shadow), 0 0 0 6px var(--ring);
}

.dot[open] .dot-trigger {
  transform: translateY(-1px) scale(1.01);
  border-color: rgba(25, 255, 138, .35);
}

/* ——— Dropdown / Sidebar box ——— */
.dot-dropdown {
  position: absolute;
  margin: 10px 0 0 0;
  padding: 8px;
  min-width: 160px;
  background: color-mix(in oklab, var(--bg) 88%, white 12%);
  border: 1px solid rgba(25, 255, 138, .22);
  border-radius: 14px;
  box-shadow:
    0 22px 40px -10px var(--shadow),
    0 0 0 6px rgba(25, 255, 138, .04) inset;
  backdrop-filter: blur(6px);
  list-style: none;
  opacity: 0;
  transform: translateY(-6px) scale(.98);
  pointer-events: none;
  transition: opacity .2s var(--soft), transform .2s var(--soft);
}

.dot[open] .dot-dropdown {
  opacity: 1;
  transform: translateY(4px) scale(1);
  pointer-events: auto;
}

/* Links */
.dot-dropdown a {
  display: block;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none;
  color: var(--text);
  font-weight: 600;
  letter-spacing: .01em;
  transition: background .2s var(--soft), color .2s var(--soft),
              transform .2s var(--soft), box-shadow .2s var(--soft);
}
.dot-dropdown a:hover,
.dot-dropdown a:focus-visible {
  background: rgba(25, 255, 138, .10);
  color: var(--accent);
  outline: none;
  transform: translateX(2px);
  box-shadow: 0 0 0 4px var(--ring);
}

/* ——— Mobile (dot button shows) ——— */
@media (max-width: 499.98px) {
  .dot .dot-trigger { width: 38px; height: 38px; border-radius: 10px; }
  .dot-dropdown { min-width: 148px; position: absolute; margin-top: 10px; }
}

/* ——— Desktop/Tablet (sidebar shows, NO button) ——— */
@media (min-width: 500px) {
  /* keep the menu always visible and “dragged out” */
  .dot .dot-trigger { display: none !important; }
  .dot-dropdown {
    position: static;     /* no longer anchored to the button */
    margin: 0;            /* remove gap left by the button */
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
}
