/* Shared shell — ONLY the floating concept switcher + a11y helpers.
   Concepts own every other pixel. Deliberately neutral so it reads as
   group chrome sitting on top of five very different brand worlds. */
#infi-switch{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:9000;font:500 13px/1.3 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
#infi-switch *{box-sizing:border-box}
.isw-pill{display:flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border:0;border-radius:999px;
  background:rgba(16,16,18,.82);color:#fff;cursor:pointer;backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 8px 30px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.12) inset;
  transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s cubic-bezier(.16,1,.3,1)}
.isw-pill:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.2) inset}
.isw-dots{display:flex;gap:4px}
.isw-dots i{width:9px;height:9px;border-radius:50%;background:var(--c);opacity:.5;transition:opacity .4s,transform .4s cubic-bezier(.16,1,.3,1)}
.isw-dots i.on{opacity:1;transform:scale(1.45)}
.isw-pill:hover .isw-dots i{opacity:.95}
.isw-lbl{letter-spacing:.02em;white-space:nowrap;max-width:110px;overflow:hidden;
  transition:max-width .5s cubic-bezier(.16,1,.3,1),opacity .35s,margin .5s cubic-bezier(.16,1,.3,1)}
/* once the reader is past the hero the pill shrinks to just the five dots so it
   never sits on top of body copy; hover/focus brings the label back */
#infi-switch.tight:not(.open) .isw-pill{padding:9px 12px}
#infi-switch.tight:not(.open) .isw-lbl{max-width:0;opacity:0;margin-left:-10px}
#infi-switch.tight:not(.open) .isw-pill:hover .isw-lbl,
#infi-switch.tight:not(.open) .isw-pill:focus-visible .isw-lbl{max-width:110px;opacity:1;margin-left:0}
#infi-switch.tight:not(.open) .isw-pill{opacity:.72}
#infi-switch.tight:not(.open) .isw-pill:hover,
#infi-switch.tight:not(.open) .isw-pill:focus-visible{opacity:1}
.isw-panel{position:absolute;left:0;bottom:calc(100% + 12px);width:min(92vw,700px);padding:18px;border-radius:22px;
  background:rgba(14,14,16,.94);color:#fff;backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);
  box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.12) inset;
  transform-origin:0 100%;animation:iswIn .5s cubic-bezier(.16,1,.3,1) both}
@keyframes iswIn{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
.isw-head{display:flex;justify-content:space-between;align-items:center;margin:0 4px 14px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.62}
.isw-x{background:0;border:0;color:#fff;font-size:22px;line-height:1;cursor:pointer;opacity:.6}
.isw-x:hover{opacity:1}
.isw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}
.isw-card{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:15px;text-decoration:none;color:#fff;
  background:rgba(255,255,255,.06);overflow:hidden;transition:background .4s,transform .55s cubic-bezier(.16,1,.3,1)}
.isw-card:hover{background:rgba(255,255,255,.12);transform:translateY(-4px)}
.isw-card.on{box-shadow:0 0 0 2px var(--c) inset}
.isw-thumb{display:block;height:62px;margin:-12px -12px 10px;background:#222 center/cover;filter:saturate(1.05)}
.isw-card b{font-size:14px;font-weight:650}
.isw-card em{font-style:normal;font-size:11px;opacity:.72}
.isw-card small{font-size:10px;opacity:.45;margin-top:3px}
.isw-all{display:block;margin-top:14px;padding:11px;border-radius:12px;text-align:center;text-decoration:none;
  color:#fff;background:rgba(255,255,255,.08);font-size:12px;letter-spacing:.06em;transition:background .35s}
.isw-all:hover{background:rgba(255,255,255,.16)}
@media (max-width:560px){.isw-lbl{display:none}.isw-panel{width:min(94vw,420px)}.isw-thumb{height:48px}}
@media (prefers-reduced-motion:reduce){.isw-panel{animation:none}.isw-pill,.isw-card{transition:none}}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[hidden]{display:none!important}

.isw-credit{display:block;margin-top:8px;padding:9px;border-radius:10px;text-align:center;text-decoration:none;
  color:rgba(255,255,255,.62);background:rgba(255,255,255,.05);font-size:11.5px;letter-spacing:.06em;transition:background .35s,color .35s}
.isw-credit:hover{background:rgba(255,255,255,.12);color:#fff}
