/* ============================================================
   Aventurine — btn-3d: the translucent 3D "jelly" button
   Opt-in variant; load after components.css, apply as
   <a class="btn btn-3d">. Not currently attached to a button.
   ============================================================ */

/* Old-school glossy "gel" treatment: rounded depth carved with inset
   shadows, a glass highlight cap, an internal light pool that makes the
   jelly read as translucent, and a solid ledge underneath that the
   button physically presses into. The one deliberate exception to
   components.css's "buttons never move" rule — the press IS the design. */
.btn-3d {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: none;
  border-radius: 10px;
  color: #fff;
  text-shadow: 0 1px 2px rgba(19,32,30,.65);  /* accent-900 — lifts the label off the gel */
  /* translucent jelly body — alpha gradient of the accent ramp, denser toward
     the bottom like tinted glass, letting the ground glow through the top */
  background: linear-gradient(180deg,
    rgba(155,197,189,.42) 0%,     /* accent-300 */
    rgba(73,126,116,.68)  46%,    /* accent-600 */
    rgba(37,65,59,.82)    100%);  /* accent-800 */
  -webkit-backdrop-filter: blur(3px) saturate(1.3);
  backdrop-filter: blur(3px) saturate(1.3);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.6),          /* top rim catching the light */
    inset 0 0 0 1px rgba(37,65,59,.45),          /* darker skin around the jelly */
    inset 0 10px 12px -8px rgba(9,16,15,.3),     /* shade tucked under the gloss cap */
    inset 0 -1px 0 rgba(223,236,234,.35),        /* light leaking out the bottom edge */
    0 4px 0 rgba(37,65,59,.82),                  /* the ledge it sits on (accent-800) */
    0 7px 12px rgba(19,32,30,.3);                /* soft ground shadow */
  transition: filter .15s ease, transform .1s ease, box-shadow .1s ease;
}
/* glass cap — the gloss across the upper half */
.btn-3d::before {
  content: '';
  position: absolute;
  top: 2px; left: 5%; right: 5%;
  height: 46%;
  border-radius: 8px 8px 48px 48px / 8px 8px 20px 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.04));
  pointer-events: none;
  z-index: 1;
}
/* internal glow — light pooling low in the jelly, the "see inside" refraction */
.btn-3d::after {
  content: '';
  position: absolute;
  left: 6%; right: 6%; bottom: 1px;
  height: 62%;
  background: radial-gradient(ellipse 100% 100% at 50% 100%,
    rgba(223,236,234,.8),         /* accent-050 core — light trapped in the jelly */
    rgba(187,216,210,.3) 55%,
    rgba(187,216,210,0) 80%);
  filter: blur(3px);
  pointer-events: none;
  z-index: 0;
}
/* label + icon float above the internal glow, below nothing */
.btn-3d > * { position: relative; z-index: 2 }
.btn-3d:hover { filter: brightness(1.07) saturate(1.1) }
.btn-3d:active {
  transform: translateY(3px);
  filter: brightness(.96);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 0 0 1px rgba(37,65,59,.5),
    inset 0 10px 12px -8px rgba(9,16,15,.35),
    inset 0 -1px 0 rgba(223,236,234,.3),
    0 1px 0 rgba(37,65,59,.82),
    0 2px 5px rgba(19,32,30,.28);
}
@media (prefers-reduced-motion: reduce) {
  .btn-3d, .btn-3d:active { transition: none; transform: none }
}
