/* Planet Sound — update 4.
   Entry card: thumbnail photo, full screen, Loop + second player.  Menu: crisp text on solid pills.
   Index: contributors line.  Loaded last, so it only adds to / refines the other style sheets. */

/* ---------- the menu: plain, sharp text — no boxes, no blur ---------- */
.bar .halo, .bar .name, .views button, .you { text-shadow: none; -webkit-text-stroke: 3px var(--paper); paint-order: stroke fill; }
.search input { text-shadow: none; }
@media (min-width: 861px) { .search input { -webkit-text-stroke: 3px var(--paper); paint-order: stroke fill; } }
/* in full screen the card is the whole page: nothing of the bar should show through its glass */
body.card-expanded .bar, body.card-expanded .rec-btn { visibility: hidden; }
.brand { filter: none; background: none; border: 0; box-shadow: none; padding: 4px 4px 4px 2px; }
.brand .name { font-weight: 650; letter-spacing: -0.005em; }
.bar .views { gap: 4px; margin-left: 14px; padding: 0; background: none; border: 0; box-shadow: none; }
.views button, .views .you {
  padding: 8px 10px; border-radius: 0; font-size: 14.5px; font-weight: 650; letter-spacing: .01em; line-height: 1.3;
  color: var(--ink); background: none; box-shadow: none;
}
.views button:hover, .views .you:hover { background: none; color: var(--ink); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; }
.views button[aria-pressed="true"] { background: none; color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); border-radius: 0; }
.rec-btn { box-shadow: none; }
.search::before, .search::after { box-shadow: none; }
@media (min-width: 861px) { .search input::placeholder { color: var(--ink); opacity: .8; } }
.menu-btn span { box-shadow: none; }
@media (max-width: 860px) {
  .menu-btn { background: none; border: 0; box-shadow: none; border-radius: 0; }
  .menu-btn span { width: 22px; }
  .bar.open .views { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; min-width: 0; align-items: flex-end; top: calc(var(--bar-h) - 6px); }
  .bar.open .views button, .bar.open .views .you { text-align: right; padding: 10px 8px; font-size: 17px; font-weight: 650; border-radius: 0; background: none; color: var(--ink); }
  .bar.open .views button[aria-pressed="true"] { background: none; box-shadow: inset 0 -2px 0 var(--ink); }
}

/* ---------- entry card: place on the left, small photo on the right ---------- */
.c-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.c-metatext { min-width: 0; flex: 1; }
.c-thumbwrap { position: relative; flex: none; width: 60px; height: 60px; margin-top: 2px; z-index: 4; }
.c-photo {
  position: absolute; top: 0; right: 0; display: block; width: 60px; height: 60px; margin: 0; object-fit: cover; filter: none;
  border-radius: 10px; border: 1px solid var(--rule); cursor: zoom-in; background: var(--board);
  box-shadow: 0 1px 3px #1E2B4D33; transition: width .22s ease, height .22s ease, border-radius .22s ease, box-shadow .22s ease;
}
.c-thumbwrap.big .c-photo { width: min(250px, calc(100vw - 64px)); height: 188px; border-radius: 14px; cursor: zoom-out; box-shadow: 0 14px 36px -10px #1E2B4D88; }
.c-photo:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .c-photo { transition: none; } }

/* ---------- full screen ---------- */
.c-headbtns { display: inline-flex; align-items: center; gap: 2px; }
.ic { width: 34px; height: 34px; border: 0; border-radius: 50%; background: none; display: grid; place-items: center; flex: none; }
.ic:hover { background: color-mix(in srgb, var(--ink) 8%, transparent); }
.ic svg { width: 18px; height: 18px; fill: none; stroke: var(--ink); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ic .i-leave, .ic[aria-pressed="true"] .i-enter { display: none; }
.ic[aria-pressed="true"] .i-leave { display: inline; }
.card.expanded {
  position: fixed; inset: 0; top: 0; right: 0; bottom: 0; left: 0; width: auto; height: auto; max-height: none;
  border-radius: 0; border: 0; z-index: 36;
}
.card.expanded .card-grip { display: none; }
.card.expanded .card-scroll { padding-inline: max(22px, calc((100% - 780px) / 2)); padding-top: calc(16px + env(safe-area-inset-top, 0px)); padding-bottom: calc(40px + var(--safe-b)); }
@media (min-width: 861px) { .card.expanded .sono-img, .card.expanded .sono-axis { height: 250px; } }
@media (max-width: 860px) { .card.expanded .card-scroll { padding-inline: 18px; } .card.expanded { transition: none; } }

/* ---------- Loop and the second player ---------- */
.loopbar { margin: 4px 0 14px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--rule); background: color-mix(in srgb, var(--paper) 40%, transparent); }
.loop { position: relative; display: inline-flex; align-items: center; gap: 10px; font-weight: 600; cursor: pointer; user-select: none; -webkit-user-select: none; }
.loop input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.loop-sw { position: relative; width: 40px; height: 23px; border-radius: 12px; background: color-mix(in srgb, var(--graphite) 38%, transparent); transition: background .15s; flex: none; }
.loop-sw::after { content: ''; position: absolute; top: 3px; left: 3px; width: 17px; height: 17px; border-radius: 50%; background: var(--sheet); box-shadow: 0 1px 2px #0005; transition: transform .15s; }
.loop input:checked + .loop-sw { background: var(--ink); }
.loop input:checked + .loop-sw::after { transform: translateX(17px); background: var(--paper); }
.loop input:focus-visible + .loop-sw { outline: 2px solid var(--focus); outline-offset: 2px; }
.mini { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.mplay { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--ink); display: grid; place-items: center; flex: none; padding: 0; }
.mplay svg { width: 18px; height: 18px; fill: var(--paper); }
.mplay .i-pause { display: none; }
.mplay.on { background: var(--signal); }
.mplay.on .i-play { display: none; } .mplay.on .i-pause { display: inline; }
.mplay:disabled { opacity: .35; }
.mseek { flex: 1; min-width: 0; height: 28px; margin: 0; accent-color: var(--ink); cursor: pointer; }
.mtime { font-size: 13px; font-weight: 500; color: var(--graphite); white-space: nowrap; min-width: 82px; text-align: right; }

/* ---------- Index: contributors ---------- */
.index-contrib { margin: 10px 0 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; color: var(--ink); font-size: 15px; font-weight: 500; }
.index-contrib b { font: 500 30px/1 var(--serif); letter-spacing: -0.01em; }
.index-contrib small { font-size: 13px; font-weight: 400; color: var(--graphite); }
